From 67afa0b7ab2b75a197cb629e5a5951c938e8ef81 Mon Sep 17 00:00:00 2001 From: rodo Date: Sun, 19 Feb 2017 14:22:33 +0100 Subject: [PATCH] Graphics API: draw circle (#295) --- .../src/org/oscim/android/canvas/AndroidCanvas.java | 6 ++++++ .../src/org/oscim/android/canvas/AndroidPaint.java | 11 +++++++++++ vtm-desktop/src/org/oscim/awt/AwtCanvas.java | 6 ++++++ vtm-desktop/src/org/oscim/awt/AwtPaint.java | 6 ++++++ vtm-ios/src/org/oscim/ios/backend/IosCanvas.java | 6 ++++++ vtm-ios/src/org/oscim/ios/backend/IosPaint.java | 6 ++++++ vtm-web/src/org/oscim/gdx/client/GwtCanvas.java | 6 ++++++ vtm-web/src/org/oscim/gdx/client/GwtPaint.java | 10 +++++++++- vtm/src/org/oscim/backend/canvas/Canvas.java | 3 +++ vtm/src/org/oscim/backend/canvas/Paint.java | 3 +++ 10 files changed, 62 insertions(+), 1 deletion(-) diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidCanvas.java b/vtm-android/src/org/oscim/android/canvas/AndroidCanvas.java index 4f46b331..75bdd745 100644 --- a/vtm-android/src/org/oscim/android/canvas/AndroidCanvas.java +++ b/vtm-android/src/org/oscim/android/canvas/AndroidCanvas.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -61,6 +62,11 @@ public class AndroidCanvas implements Canvas { canvas.drawBitmap(((AndroidBitmap) bitmap).mBitmap, x, y, null); } + @Override + public void drawCircle(float x, float y, float radius, Paint paint) { + canvas.drawCircle(x, y, radius, ((AndroidPaint) paint).mPaint); + } + @Override public void drawLine(int x1, int y1, int x2, int y2, Paint paint) { canvas.drawLine(x1, y1, x2, y2, ((AndroidPaint) paint).mPaint); diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidPaint.java b/vtm-android/src/org/oscim/android/canvas/AndroidPaint.java index 6e854024..fbceaaf6 100644 --- a/vtm-android/src/org/oscim/android/canvas/AndroidPaint.java +++ b/vtm-android/src/org/oscim/android/canvas/AndroidPaint.java @@ -1,6 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -139,6 +140,16 @@ class AndroidPaint implements Paint { return mPaint.getStrokeWidth(); } + @Override + public Style getStyle() { + switch (mPaint.getStyle()) { + case STROKE: + return Style.STROKE; + default: + return Style.FILL; + } + } + @Override public float getTextHeight(String text) { mPaint.getTextBounds(text, 0, text.length(), rect); diff --git a/vtm-desktop/src/org/oscim/awt/AwtCanvas.java b/vtm-desktop/src/org/oscim/awt/AwtCanvas.java index 73fb5bee..33f50215 100644 --- a/vtm-desktop/src/org/oscim/awt/AwtCanvas.java +++ b/vtm-desktop/src/org/oscim/awt/AwtCanvas.java @@ -2,6 +2,7 @@ * Copyright 2010, 2011, 2012, 2013 mapsforge.org * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -129,6 +130,11 @@ public class AwtCanvas implements Canvas { this.canvas.drawImage(((AwtBitmap) bitmap).bitmap, (int) x, (int) y, null); } + @Override + public void drawCircle(float x, float y, float radius, Paint paint) { + // TODO + } + @Override public void drawLine(int x1, int y1, int x2, int y2, Paint paint) { AwtPaint awtPaint = (AwtPaint) paint; diff --git a/vtm-desktop/src/org/oscim/awt/AwtPaint.java b/vtm-desktop/src/org/oscim/awt/AwtPaint.java index c3ec74cf..616c59ef 100644 --- a/vtm-desktop/src/org/oscim/awt/AwtPaint.java +++ b/vtm-desktop/src/org/oscim/awt/AwtPaint.java @@ -2,6 +2,7 @@ * Copyright 2010, 2011, 2012, 2013 mapsforge.org * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -217,6 +218,11 @@ public class AwtPaint implements Paint { return strokeWidth; } + @Override + public Style getStyle() { + return style; + } + @Override public float getTextHeight(String text) { Graphics2D graphics2d = bufferedImage.createGraphics(); diff --git a/vtm-ios/src/org/oscim/ios/backend/IosCanvas.java b/vtm-ios/src/org/oscim/ios/backend/IosCanvas.java index 6e0285b7..b05b2cc2 100644 --- a/vtm-ios/src/org/oscim/ios/backend/IosCanvas.java +++ b/vtm-ios/src/org/oscim/ios/backend/IosCanvas.java @@ -1,6 +1,7 @@ /* * Copyright 2016 Longri * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -91,6 +92,11 @@ public class IosCanvas implements Canvas { this.cgBitmapContext.restoreGState(); } + @Override + public void drawCircle(float x, float y, float radius, Paint paint) { + // TODO + } + @Override public void drawLine(int x1, int y1, int x2, int y2, Paint paint) { diff --git a/vtm-ios/src/org/oscim/ios/backend/IosPaint.java b/vtm-ios/src/org/oscim/ios/backend/IosPaint.java index 3466bfd0..ba8b24f1 100644 --- a/vtm-ios/src/org/oscim/ios/backend/IosPaint.java +++ b/vtm-ios/src/org/oscim/ios/backend/IosPaint.java @@ -1,6 +1,7 @@ /* * Copyright 2016 Longri * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -342,6 +343,11 @@ public class IosPaint implements Paint { return strokeWidth; } + @Override + public Style getStyle() { + return style; + } + @Override public float getTextHeight(String text) { return this.fontHeight; diff --git a/vtm-web/src/org/oscim/gdx/client/GwtCanvas.java b/vtm-web/src/org/oscim/gdx/client/GwtCanvas.java index 6840618c..29d2a9a4 100644 --- a/vtm-web/src/org/oscim/gdx/client/GwtCanvas.java +++ b/vtm-web/src/org/oscim/gdx/client/GwtCanvas.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -94,6 +95,11 @@ public class GwtCanvas implements org.oscim.backend.canvas.Canvas { // TODO } + @Override + public void drawCircle(float x, float y, float radius, Paint paint) { + // TODO + } + @Override public void drawLine(int x1, int y1, int x2, int y2, Paint paint) { // TODO diff --git a/vtm-web/src/org/oscim/gdx/client/GwtPaint.java b/vtm-web/src/org/oscim/gdx/client/GwtPaint.java index 56d8cce0..fcedba36 100644 --- a/vtm-web/src/org/oscim/gdx/client/GwtPaint.java +++ b/vtm-web/src/org/oscim/gdx/client/GwtPaint.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -36,6 +37,8 @@ public class GwtPaint implements Paint { //String font = "12px sans-serif"; String font = "13px Helvetica"; + Style style; + @Override public int getColor() { return 0; @@ -69,7 +72,7 @@ public class GwtPaint implements Paint { @Override public void setStyle(Style style) { - // TODO + this.style = style; } @Override @@ -129,6 +132,11 @@ public class GwtPaint implements Paint { return strokeWidth; } + @Override + public Style getStyle() { + return style; + } + @Override public float getTextHeight(String text) { // TODO diff --git a/vtm/src/org/oscim/backend/canvas/Canvas.java b/vtm/src/org/oscim/backend/canvas/Canvas.java index f7ccfbdf..006cbd89 100644 --- a/vtm/src/org/oscim/backend/canvas/Canvas.java +++ b/vtm/src/org/oscim/backend/canvas/Canvas.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -42,6 +43,8 @@ public interface Canvas { */ void drawBitmap(Bitmap bitmap, float x, float y); + void drawCircle(float x, float y, float radius, Paint paint); + void drawLine(int x1, int y1, int x2, int y2, Paint paint); void fillColor(int color); diff --git a/vtm/src/org/oscim/backend/canvas/Paint.java b/vtm/src/org/oscim/backend/canvas/Paint.java index 5162148e..5b44bc51 100644 --- a/vtm/src/org/oscim/backend/canvas/Paint.java +++ b/vtm/src/org/oscim/backend/canvas/Paint.java @@ -2,6 +2,7 @@ * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -73,6 +74,8 @@ public interface Paint { float getStrokeWidth(); + Style getStyle(); + float getTextHeight(String text); float getTextWidth(String text);