diff --git a/vtm-web-app/src/org/oscim/web/client/GwtMap.java b/vtm-web-app/src/org/oscim/web/client/GwtMap.java index 20c2fbb0..250ebc28 100644 --- a/vtm-web-app/src/org/oscim/web/client/GwtMap.java +++ b/vtm-web-app/src/org/oscim/web/client/GwtMap.java @@ -39,7 +39,6 @@ import org.oscim.layers.tile.buildings.BuildingLayer; import org.oscim.layers.tile.buildings.S3DBTileLayer; import org.oscim.layers.tile.vector.VectorTileLayer; import org.oscim.layers.tile.vector.labeling.LabelLayer; -import org.oscim.renderer.ExtrusionRenderer; import org.oscim.renderer.MapRenderer; import org.oscim.theme.StreamRenderTheme; import org.oscim.theme.VtmThemes; @@ -151,7 +150,7 @@ class GwtMap extends GdxMap { if (!nobuildings && !s3db) { mBuildingLayer = new BuildingLayer(mMap, l); - ((ExtrusionRenderer) mBuildingLayer.getRenderer()).setZLimit((float) 65536 / 10); + mBuildingLayer.getExtrusionRenderer().setZLimit((float) 65536 / 10); mMap.layers().add(mBuildingLayer); } @@ -174,7 +173,7 @@ class GwtMap extends GdxMap { return; } - ((ExtrusionRenderer) mBuildingLayer.getRenderer()).setZLimit((float) val / 10); + mBuildingLayer.getExtrusionRenderer().setZLimit((float) val / 10); mMap.updateMap(true); } diff --git a/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java b/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java index b799a9c8..4c2dfe75 100644 --- a/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java +++ b/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java @@ -27,6 +27,7 @@ import org.oscim.layers.tile.ZoomLimiter; import org.oscim.layers.tile.vector.VectorTileLayer; import org.oscim.layers.tile.vector.VectorTileLayer.TileLoaderThemeHook; import org.oscim.map.Map; +import org.oscim.renderer.ExtrusionRenderer; import org.oscim.renderer.OffscreenRenderer; import org.oscim.renderer.OffscreenRenderer.Mode; import org.oscim.renderer.bucket.ExtrusionBuckets; @@ -65,6 +66,8 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim // Can be replaced with Multimap in Java 8 protected java.util.Map> mBuildings = new HashMap<>(); + protected final ExtrusionRenderer mExtrusionRenderer; + private final ZoomLimiter mZoomLimiter; protected final IRenderTheme mRenderTheme; @@ -103,7 +106,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim // Use zoomMin as zoomLimit to render buildings only once mZoomLimiter = new ZoomLimiter(tileLayer.getManager(), zoomMin, zoomMax, zoomMin); - mRenderer = new BuildingRenderer(tileLayer.tileRenderer(), mZoomLimiter, mesh, TRANSLUCENT); + mRenderer = mExtrusionRenderer = new BuildingRenderer(tileLayer.tileRenderer(), mZoomLimiter, mesh, TRANSLUCENT); if (POST_AA) mRenderer = new OffscreenRenderer(Mode.SSAO_FXAA, mRenderer); @@ -243,6 +246,13 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim return ebs; } + /** + * Get the ExtrusionRenderer for customization. + */ + public ExtrusionRenderer getExtrusionRenderer() { + return mExtrusionRenderer; + } + protected String getKeyOrDefault(String key) { if (mRenderTheme == null) return key;