diff --git a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/vector/VectorTileLoader.java index 0fa7c219..4f87084c 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -30,7 +30,6 @@ import org.oscim.renderer.elements.LineTexLayer; import org.oscim.renderer.elements.PolygonLayer; import org.oscim.renderer.elements.SymbolItem; import org.oscim.renderer.elements.TextItem; -import org.oscim.theme.IRenderCallback; import org.oscim.theme.IRenderTheme; import org.oscim.theme.renderinstruction.Area; import org.oscim.theme.renderinstruction.Circle; @@ -58,7 +57,7 @@ import org.oscim.utils.pool.Inlist; * 5. RenderTheme calls IRenderCallback functions with style information * 6. Styled items become added to MapTile.layers... roughly */ -public class VectorTileLoader extends TileLoader implements IRenderCallback, ITileDataSink { +public class VectorTileLoader extends TileLoader implements IRenderTheme.Callback, ITileDataSink { private static final String TAG = VectorTileLoader.class.getName(); @@ -472,7 +471,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderAreaCaption(Text text) { + public void renderAreaText(Text text) { // TODO place somewhere on polygon String value = textValueForKey(text); @@ -486,7 +485,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderPointOfInterestCaption(Text text) { + public void renderPointText(Text text) { String value = textValueForKey(text); if (value == null) return; @@ -517,11 +516,11 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderPointOfInterestCircle(Circle circle, int level) { + public void renderPointCircle(Circle circle, int level) { } @Override - public void renderPointOfInterestSymbol(Symbol symbol) { + public void renderPointSymbol(Symbol symbol) { if (symbol.texture == null) { Log.d(TAG, "missing symbol for " + mElement.tags.asString()); return; diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java index 6e1c2cb6..13b959d7 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -16,6 +16,7 @@ package org.oscim.layers.tile.vector; import static org.oscim.tiling.MapTile.STATE_NONE; +import org.oscim.backend.Log; import org.oscim.core.GeometryBuffer.GeometryType; import org.oscim.core.MapElement; import org.oscim.core.MercatorProjection; @@ -24,14 +25,13 @@ import org.oscim.core.TagSet; import org.oscim.core.Tile; import org.oscim.layers.tile.vector.labeling.WayDecorator; import org.oscim.map.DebugSettings; -import org.oscim.renderer.elements.ExtrusionLayer; import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.elements.ExtrusionLayer; import org.oscim.renderer.elements.LineLayer; import org.oscim.renderer.elements.LineTexLayer; import org.oscim.renderer.elements.PolygonLayer; import org.oscim.renderer.elements.SymbolItem; import org.oscim.renderer.elements.TextItem; -import org.oscim.theme.IRenderCallback; import org.oscim.theme.IRenderTheme; import org.oscim.theme.renderinstruction.Area; import org.oscim.theme.renderinstruction.Circle; @@ -49,8 +49,6 @@ import org.oscim.tiling.source.ITileDataSource.QueryResult; import org.oscim.utils.LineClipper; import org.oscim.utils.pool.Inlist; -import org.oscim.backend.Log; - /** * @note * 0. @@ -62,7 +60,7 @@ import org.oscim.backend.Log; * 5. RenderTheme calls IRenderCallback functions with style information * 6. Styled items become added to MapTile.layers... */ -public class VectorTileLoader extends TileLoader implements IRenderCallback, ITileDataSink { +public class VectorTileLoader extends TileLoader implements IRenderTheme.Callback, ITileDataSink { private static final String TAG = VectorTileLoader.class.getName(); @@ -453,7 +451,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderAreaCaption(Text text) { + public void renderAreaText(Text text) { // TODO place somewhere on polygon String value = textValueForKey(text); @@ -467,7 +465,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderPointOfInterestCaption(Text text) { + public void renderPointText(Text text) { String value = textValueForKey(text); if (value == null) return; @@ -498,11 +496,11 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi } @Override - public void renderPointOfInterestCircle(Circle circle, int level) { + public void renderPointCircle(Circle circle, int level) { } @Override - public void renderPointOfInterestSymbol(Symbol symbol) { + public void renderPointSymbol(Symbol symbol) { if (symbol.texture == null){ Log.d(TAG, "missing symbol for " + mElement.tags.asString()); return; diff --git a/vtm/src/org/oscim/theme/IRenderCallback.java b/vtm/src/org/oscim/theme/IRenderCallback.java deleted file mode 100644 index cdb83406..00000000 --- a/vtm/src/org/oscim/theme/IRenderCallback.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2010, 2011, 2012 mapsforge.org - * - * 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 - * Foundation, either version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License along with - * this program. If not, see . - */ -package org.oscim.theme; - -import org.oscim.theme.renderinstruction.Area; -import org.oscim.theme.renderinstruction.Circle; -import org.oscim.theme.renderinstruction.Line; -import org.oscim.theme.renderinstruction.LineSymbol; -import org.oscim.theme.renderinstruction.Symbol; -import org.oscim.theme.renderinstruction.Text; - -/** - * Callback methods for rendering areas, ways and points of interest (POIs). - */ -public interface IRenderCallback { - /** - * Renders an area with the given parameters. - * - * @param area - * ... - * @param level - * ... - */ - void renderArea(Area area, int level); - - /** - * Renders an area symbol with the given bitmap. - * - * @param symbol - * the symbol to be rendered. - */ - void renderAreaSymbol(Symbol symbol); - - /** - * Renders a point of interest circle with the given parameters. - * - * @param circle - * the circle. - * @param level - * the drawing level on which the circle should be rendered. - */ - void renderPointOfInterestCircle(Circle circle, int level); - - /** - * Renders a point of interest symbol with the given bitmap. - * - * @param symbol - * the symbol to be rendered. - */ - void renderPointOfInterestSymbol(Symbol symbol); - - /** - * Renders a way with the given parameters. - * - * @param line - * ... - * @param level - * ... - */ - void renderWay(Line line, int level); - - /** - * Renders a way with the given symbol along the way path. - * - * @param symbol - * the symbol to be rendered. - */ - void renderWaySymbol(LineSymbol symbol); - - /** - * Renders a way with the given text along the way path. - * - * @param text - * ... - */ - void renderWayText(Text text); - - /** - * Renders an area caption with the given text. - * - * @param text - * the text to be rendered. - */ - void renderAreaCaption(Text text); - - /** - * Renders a point of interest caption with the given text. - * - * @param text - * the text to be rendered. - */ - void renderPointOfInterestCaption(Text text); - -} diff --git a/vtm/src/org/oscim/theme/IRenderTheme.java b/vtm/src/org/oscim/theme/IRenderTheme.java index 119b1294..196b3f08 100644 --- a/vtm/src/org/oscim/theme/IRenderTheme.java +++ b/vtm/src/org/oscim/theme/IRenderTheme.java @@ -16,7 +16,13 @@ package org.oscim.theme; import org.oscim.core.MapElement; +import org.oscim.theme.renderinstruction.Area; +import org.oscim.theme.renderinstruction.Circle; +import org.oscim.theme.renderinstruction.Line; +import org.oscim.theme.renderinstruction.LineSymbol; import org.oscim.theme.renderinstruction.RenderInstruction; +import org.oscim.theme.renderinstruction.Symbol; +import org.oscim.theme.renderinstruction.Text; public interface IRenderTheme { @@ -63,4 +69,83 @@ public interface IRenderTheme { */ public abstract void scaleTextSize(float scaleFactor); + + /** + * Callback methods for rendering areas, ways and points of interest (POIs). + */ + public interface Callback { + /** + * Renders an area with the given parameters. + * + * @param area + * @param level + */ + void renderArea(Area area, int level); + + /** + * Renders an area symbol with the given bitmap. + * + * @param symbol + * the symbol to be rendered. + */ + void renderAreaSymbol(Symbol symbol); + + /** + * Renders an area caption with the given text. + * + * @param text + * the text to be rendered. + */ + void renderAreaText(Text text); + + /** + * Renders a point of interest circle with the given parameters. + * + * @param circle + * the circle. + * @param level + * the drawing level on which the circle should be rendered. + */ + void renderPointCircle(Circle circle, int level); + + /** + * Renders a point of interest symbol with the given bitmap. + * + * @param symbol + * the symbol to be rendered. + */ + void renderPointSymbol(Symbol symbol); + + /** + * Renders a point of interest caption with the given text. + * + * @param text + * the text to be rendered. + */ + void renderPointText(Text text); + + /** + * Renders a way with the given parameters. + * + * @param line + * @param level + */ + void renderWay(Line line, int level); + + /** + * Renders a way with the given symbol along the way path. + * + * @param symbol + * the symbol to be rendered. + */ + void renderWaySymbol(LineSymbol symbol); + + /** + * Renders a way with the given text along the way path. + * + * @param text + */ + void renderWayText(Text text); + + } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/Area.java b/vtm/src/org/oscim/theme/renderinstruction/Area.java index 92377bc4..1b7236fb 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/Area.java +++ b/vtm/src/org/oscim/theme/renderinstruction/Area.java @@ -15,7 +15,7 @@ package org.oscim.theme.renderinstruction; import org.oscim.renderer.elements.TextureItem; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * Represents a closed polygon on the map. @@ -65,7 +65,7 @@ public final class Area extends RenderInstruction { } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { renderCallback.renderArea(this, this.level); } @@ -76,6 +76,5 @@ public final class Area extends RenderInstruction { public final int fade; public final int blendColor; public final int blend; - public final TextureItem texture; } diff --git a/vtm/src/org/oscim/theme/renderinstruction/AreaLevel.java b/vtm/src/org/oscim/theme/renderinstruction/AreaLevel.java index 9e2856c8..77fe59c0 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/AreaLevel.java +++ b/vtm/src/org/oscim/theme/renderinstruction/AreaLevel.java @@ -14,7 +14,7 @@ */ package org.oscim.theme.renderinstruction; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; public class AreaLevel extends RenderInstruction { private final Area area; @@ -26,7 +26,7 @@ public class AreaLevel extends RenderInstruction { } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { renderCallback.renderArea(this.area, level); } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/Circle.java b/vtm/src/org/oscim/theme/renderinstruction/Circle.java index a4ced95a..1ddc2ad3 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/Circle.java +++ b/vtm/src/org/oscim/theme/renderinstruction/Circle.java @@ -14,7 +14,7 @@ */ package org.oscim.theme.renderinstruction; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** @@ -44,17 +44,10 @@ public final class Circle extends RenderInstruction { this.strokeWidth = strokeWidth; this.level = level; - -//if (!mScaleRadius) { -// mRenderRadius = mRadius; -// if (mOutline != null) { -// mOutline.setStrokeWidth(mStrokeWidth); -// } -//} } @Override - public void renderNode(IRenderCallback renderCallback) { - renderCallback.renderPointOfInterestCircle(this, this.level); + public void renderNode(Callback renderCallback) { + renderCallback.renderPointCircle(this, this.level); } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/Line.java b/vtm/src/org/oscim/theme/renderinstruction/Line.java index e5c8bd06..00615730 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/Line.java +++ b/vtm/src/org/oscim/theme/renderinstruction/Line.java @@ -15,7 +15,7 @@ package org.oscim.theme.renderinstruction; import org.oscim.backend.canvas.Paint.Cap; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * Represents a polyline on the map. @@ -100,7 +100,7 @@ public final class Line extends RenderInstruction { } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { renderCallback.renderWay(this, level); } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/LineSymbol.java b/vtm/src/org/oscim/theme/renderinstruction/LineSymbol.java index f6522936..ccbb6291 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/LineSymbol.java +++ b/vtm/src/org/oscim/theme/renderinstruction/LineSymbol.java @@ -14,7 +14,7 @@ */ package org.oscim.theme.renderinstruction; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * Represents an icon along a polyline on the map. @@ -36,7 +36,7 @@ public final class LineSymbol extends RenderInstruction { } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { renderCallback.renderWaySymbol(this); } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/RenderInstruction.java b/vtm/src/org/oscim/theme/renderinstruction/RenderInstruction.java index 5b301adb..ca0a9a6a 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/RenderInstruction.java +++ b/vtm/src/org/oscim/theme/renderinstruction/RenderInstruction.java @@ -14,7 +14,7 @@ */ package org.oscim.theme.renderinstruction; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * A RenderInstruction is a basic graphical primitive to draw a map. @@ -30,14 +30,14 @@ public abstract class RenderInstruction { * @param renderCallback * a reference to the receiver of all render callbacks. */ - public void renderNode(IRenderCallback renderCallback) { + public void renderNode(Callback renderCallback) { } /** * @param renderCallback * a reference to the receiver of all render callbacks. */ - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { } /** diff --git a/vtm/src/org/oscim/theme/renderinstruction/Symbol.java b/vtm/src/org/oscim/theme/renderinstruction/Symbol.java index 973e9fd4..ee6e6766 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/Symbol.java +++ b/vtm/src/org/oscim/theme/renderinstruction/Symbol.java @@ -15,7 +15,7 @@ package org.oscim.theme.renderinstruction; import org.oscim.renderer.atlas.TextureRegion; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * Represents an icon on the map. @@ -34,12 +34,12 @@ public final class Symbol extends RenderInstruction { } @Override - public void renderNode(IRenderCallback renderCallback) { - renderCallback.renderPointOfInterestSymbol(this); + public void renderNode(Callback renderCallback) { + renderCallback.renderPointSymbol(this); } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { renderCallback.renderAreaSymbol(this); } } diff --git a/vtm/src/org/oscim/theme/renderinstruction/Text.java b/vtm/src/org/oscim/theme/renderinstruction/Text.java index ab85714a..f637959b 100644 --- a/vtm/src/org/oscim/theme/renderinstruction/Text.java +++ b/vtm/src/org/oscim/theme/renderinstruction/Text.java @@ -20,7 +20,7 @@ import org.oscim.backend.canvas.Paint.Align; import org.oscim.backend.canvas.Paint.FontFamily; import org.oscim.backend.canvas.Paint.FontStyle; import org.oscim.renderer.atlas.TextureRegion; -import org.oscim.theme.IRenderCallback; +import org.oscim.theme.IRenderTheme.Callback; /** * Represents a text along a polyline on the map. @@ -101,15 +101,15 @@ public final class Text extends RenderInstruction { } @Override - public void renderNode(IRenderCallback renderCallback) { + public void renderNode(Callback renderCallback) { if (caption) - renderCallback.renderPointOfInterestCaption(this); + renderCallback.renderPointText(this); } @Override - public void renderWay(IRenderCallback renderCallback) { + public void renderWay(Callback renderCallback) { if (caption) - renderCallback.renderAreaCaption(this); + renderCallback.renderAreaText(this); else renderCallback.renderWayText(this); }