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.renderer.MapTile;
import org.oscim.renderer.layer.ExtrusionLayer;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.Layers;
import org.oscim.renderer.layer.LineLayer;
import org.oscim.renderer.layer.LineTexLayer;
@ -80,7 +79,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
new float[] { 0, 0, 0, Tile.SIZE,
Tile.SIZE, Tile.SIZE,
Tile.SIZE, 0, 0, 0 },
new short[] {10}),
new short[] { 10 }),
new Tag[] { new Tag("debug", "box") }
);
@ -358,8 +357,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
return;
}
LineLayer lineLayer = (LineLayer)
mTile.layers.getLayer(numLayer, Layer.LINE);
LineLayer lineLayer = mTile.layers.getLineLayer(numLayer);
if (lineLayer == null)
return;
@ -386,8 +384,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
mCurLineLayer = lineLayer;
} else {
LineTexLayer lineLayer = (LineTexLayer)
mTile.layers.getLayer(numLayer, Layer.TEXLINE);
LineTexLayer lineLayer = mTile.layers.getLineTexLayer(numLayer);
if (lineLayer == null)
return;
@ -424,8 +421,7 @@ public class TileGenerator implements IRenderCallback, IMapDatabaseCallback {
if (debug.disablePolygons)
return;
PolygonLayer layer = (PolygonLayer)
mTile.layers.getLayer(numLayer, Layer.POLYGON);
PolygonLayer layer = mTile.layers.getPolygonLayer(numLayer);
if (layer == null)
return;

View File

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

View File

@ -50,8 +50,20 @@ public class Layers {
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.
public Layer getLayer(int level, byte type) {
private Layer getLayer(int level, byte type) {
Layer l = baseLayers;
Layer layer = null;

View File

@ -19,7 +19,6 @@ import org.oscim.core.Tile;
import org.oscim.graphics.Color;
import org.oscim.graphics.Paint.Cap;
import org.oscim.renderer.GLRenderer.Matrices;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.LineLayer;
import org.oscim.renderer.layer.TextItem;
import org.oscim.renderer.layer.TextLayer;
@ -125,7 +124,7 @@ public class GridOverlay extends BasicOverlay {
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.width = 1.5f;
ll.addLine(mPoints, mIndex, false);

View File

@ -16,7 +16,6 @@ package org.oscim.renderer.overlays;
import org.oscim.core.MapPosition;
import org.oscim.renderer.GLRenderer.Matrices;
import org.oscim.renderer.layer.Layer;
import org.oscim.renderer.layer.LineTexLayer;
import org.oscim.renderer.layer.TextItem;
import org.oscim.theme.renderinstruction.Line;
@ -50,7 +49,7 @@ public class TestOverlay extends BasicOverlay {
//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.width = 8;
lt.addLine(points, null);
@ -62,7 +61,7 @@ public class TestOverlay extends BasicOverlay {
-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.width = 8;
lt.addLine(points2, null);

View File

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