provide public function to only retrieve valid base layers type

This commit is contained in:
Hannes Janetzek 2013-04-12 04:14:23 +02:00
parent b9c3c3fad8
commit ca311f0bcf
6 changed files with 33 additions and 28 deletions

View File

@ -27,7 +27,6 @@ import org.oscim.database.IMapDatabaseCallback;
import org.oscim.database.QueryResult; import org.oscim.database.QueryResult;
import org.oscim.renderer.MapTile; import org.oscim.renderer.MapTile;
import org.oscim.renderer.layer.ExtrusionLayer; import org.oscim.renderer.layer.ExtrusionLayer;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.Layers; import org.oscim.renderer.layer.Layers;
import org.oscim.renderer.layer.LineLayer; import org.oscim.renderer.layer.LineLayer;
import org.oscim.renderer.layer.LineTexLayer; import org.oscim.renderer.layer.LineTexLayer;
@ -358,8 +357,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
return; return;
} }
LineLayer lineLayer = (LineLayer) LineLayer lineLayer = mTile.layers.getLineLayer(numLayer);
mTile.layers.getLayer(numLayer, Layer.LINE);
if (lineLayer == null) if (lineLayer == null)
return; return;
@ -386,8 +384,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
mCurLineLayer = lineLayer; mCurLineLayer = lineLayer;
} else { } else {
LineTexLayer lineLayer = (LineTexLayer) LineTexLayer lineLayer = mTile.layers.getLineTexLayer(numLayer);
mTile.layers.getLayer(numLayer, Layer.TEXLINE);
if (lineLayer == null) if (lineLayer == null)
return; return;
@ -424,8 +421,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
if (debug.disablePolygons) if (debug.disablePolygons)
return; return;
PolygonLayer layer = (PolygonLayer) PolygonLayer layer = mTile.layers.getPolygonLayer(numLayer);
mTile.layers.getLayer(numLayer, Layer.POLYGON);
if (layer == null) if (layer == null)
return; return;

View File

@ -26,7 +26,6 @@ import org.oscim.core.PointD;
import org.oscim.core.Tile; import org.oscim.core.Tile;
import org.oscim.graphics.Paint.Cap; import org.oscim.graphics.Paint.Cap;
import org.oscim.renderer.GLRenderer.Matrices; import org.oscim.renderer.GLRenderer.Matrices;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.LineLayer; import org.oscim.renderer.layer.LineLayer;
import org.oscim.renderer.overlays.BasicOverlay; import org.oscim.renderer.overlays.BasicOverlay;
import org.oscim.theme.renderinstruction.Line; import org.oscim.theme.renderinstruction.Line;
@ -115,7 +114,7 @@ public class PathOverlay extends Overlay {
return; return;
} }
LineLayer ll = (LineLayer) layers.getLayer(1, Layer.LINE); LineLayer ll = layers.getLineLayer(0);
ll.line = mLineStyle; ll.line = mLineStyle;
ll.width = ll.line.width; ll.width = ll.line.width;

View File

@ -50,8 +50,20 @@ public class Layers {
private Layer mCurLayer; private Layer mCurLayer;
public LineLayer getLineLayer(int level) {
return (LineLayer)getLayer(level, Layer.LINE);
}
public PolygonLayer getPolygonLayer(int level) {
return (PolygonLayer)getLayer(level, Layer.POLYGON);
}
public LineTexLayer getLineTexLayer(int level) {
return (LineTexLayer)getLayer(level, Layer.TEXLINE);
}
// get or add the Line- or PolygonLayer for a level. // get or add the Line- or PolygonLayer for a level.
public Layer getLayer(int level, byte type) { private Layer getLayer(int level, byte type) {
Layer l = baseLayers; Layer l = baseLayers;
Layer layer = null; Layer layer = null;

View File

@ -19,7 +19,6 @@ import org.oscim.core.Tile;
import org.oscim.graphics.Color; import org.oscim.graphics.Color;
import org.oscim.graphics.Paint.Cap; import org.oscim.graphics.Paint.Cap;
import org.oscim.renderer.GLRenderer.Matrices; import org.oscim.renderer.GLRenderer.Matrices;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.LineLayer; import org.oscim.renderer.layer.LineLayer;
import org.oscim.renderer.layer.TextItem; import org.oscim.renderer.layer.TextItem;
import org.oscim.renderer.layer.TextLayer; import org.oscim.renderer.layer.TextLayer;
@ -125,7 +124,7 @@ public class GridOverlay extends BasicOverlay {
layers.clear(); layers.clear();
LineLayer ll = (LineLayer) layers.getLayer(1, Layer.LINE); LineLayer ll = layers.getLineLayer(0);
ll.line = new Line(Color.BLUE, 1.0f, Cap.BUTT); ll.line = new Line(Color.BLUE, 1.0f, Cap.BUTT);
ll.width = 1.5f; ll.width = 1.5f;
ll.addLine(mPoints, mIndex, false); ll.addLine(mPoints, mIndex, false);

View File

@ -16,7 +16,6 @@ package org.oscim.renderer.overlays;
import org.oscim.core.MapPosition; import org.oscim.core.MapPosition;
import org.oscim.renderer.GLRenderer.Matrices; import org.oscim.renderer.GLRenderer.Matrices;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.LineTexLayer; import org.oscim.renderer.layer.LineTexLayer;
import org.oscim.renderer.layer.TextItem; import org.oscim.renderer.layer.TextItem;
import org.oscim.theme.renderinstruction.Line; import org.oscim.theme.renderinstruction.Line;
@ -50,7 +49,7 @@ public class TestOverlay extends BasicOverlay {
//ll.addLine(points, index, true); //ll.addLine(points, index, true);
LineTexLayer lt = (LineTexLayer) layers.getLayer(2, Layer.TEXLINE); LineTexLayer lt = layers.getLineTexLayer(2);
lt.line = new Line(Color.BLUE, 1.0f, 8); lt.line = new Line(Color.BLUE, 1.0f, 8);
lt.width = 8; lt.width = 8;
lt.addLine(points, null); lt.addLine(points, null);
@ -62,7 +61,7 @@ public class TestOverlay extends BasicOverlay {
-200, 200, -200, 200,
-200, -200 -200, -200
}; };
lt = (LineTexLayer) layers.getLayer(3, Layer.TEXLINE); lt = layers.getLineTexLayer(3);
lt.line = new Line(Color.BLUE, 1.0f, 16); lt.line = new Line(Color.BLUE, 1.0f, 16);
lt.width = 8; lt.width = 8;
lt.addLine(points2, null); lt.addLine(points2, null);

View File

@ -622,21 +622,21 @@ public class TextOverlay extends BasicOverlay {
LineLayer ll; LineLayer ll;
if (prev) { if (prev) {
if (overlaps == 1) if (overlaps == 1)
ll = (LineLayer) dbg.getLayer(4, Layer.LINE); ll = dbg.getLineLayer(4);
else else
ll = (LineLayer) dbg.getLayer(5, Layer.LINE); ll = dbg.getLineLayer(5);
} else { } else {
if (ti.width > ti.length * scale) { if (ti.width > ti.length * scale) {
ll = (LineLayer) dbg.getLayer(1, Layer.LINE); ll = dbg.getLineLayer(1);
overlaps = 3; overlaps = 3;
} }
else if (overlaps == 1) else if (overlaps == 1)
ll = (LineLayer) dbg.getLayer(0, Layer.LINE); ll = dbg.getLineLayer(0);
else if (overlaps == 2) else if (overlaps == 2)
ll = (LineLayer) dbg.getLayer(3, Layer.LINE); ll = dbg.getLineLayer(3);
else else
ll = (LineLayer) dbg.getLayer(2, Layer.LINE); ll = dbg.getLineLayer(2);
} }
float[] points = mDebugPoints; float[] points = mDebugPoints;
float width = (ti.x2 - ti.x1) / 2f; float width = (ti.x2 - ti.x1) / 2f;
@ -654,22 +654,22 @@ public class TextOverlay extends BasicOverlay {
private static void addDebugLayers(Layers dbg) { private static void addDebugLayers(Layers dbg) {
dbg.clear(); dbg.clear();
LineLayer ll = (LineLayer) dbg.getLayer(0, Layer.LINE); LineLayer ll = dbg.getLineLayer(0);
ll.line = new Line((Color.BLUE & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.BLUE & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
ll = (LineLayer) dbg.getLayer(3, Layer.LINE); ll = dbg.getLineLayer(3);
ll.line = new Line((Color.YELLOW & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.YELLOW & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
ll = (LineLayer) dbg.getLayer(1, Layer.LINE); ll = dbg.getLineLayer(1);
ll.line = new Line((Color.RED & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.RED & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
ll = (LineLayer) dbg.getLayer(2, Layer.LINE); ll = dbg.getLineLayer(2);
ll.line = new Line((Color.GREEN & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.GREEN & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
ll = (LineLayer) dbg.getLayer(4, Layer.LINE); ll = dbg.getLineLayer(4);
ll.line = new Line((Color.CYAN & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.CYAN & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
ll = (LineLayer) dbg.getLayer(5, Layer.LINE); ll = dbg.getLineLayer(5);
ll.line = new Line((Color.MAGENTA & 0xaaffffff), 1, Cap.BUTT); ll.line = new Line((Color.MAGENTA & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2; ll.width = 2;
} }