BuildingLayer: add getExtrusionRenderer (#633)
This commit is contained in:
parent
929d1fc78b
commit
cae68ffec9
@ -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);
|
||||
}
|
||||
|
@ -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<Integer, List<BuildingElement>> 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user