BuildingLayer: add getExtrusionRenderer (#633)

This commit is contained in:
Gustl22
2019-01-22 23:19:38 +01:00
committed by Emux
parent 929d1fc78b
commit cae68ffec9
2 changed files with 13 additions and 4 deletions

View File

@@ -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;