Merge pull request #675 from Gustl22/buildinglayer_rendertheme
Fix Rendertheme set after creation of BuildingLayer
This commit is contained in:
commit
6af46cf8cc
@ -33,7 +33,6 @@ import org.oscim.renderer.OffscreenRenderer.Mode;
|
|||||||
import org.oscim.renderer.bucket.ExtrusionBuckets;
|
import org.oscim.renderer.bucket.ExtrusionBuckets;
|
||||||
import org.oscim.renderer.bucket.RenderBuckets;
|
import org.oscim.renderer.bucket.RenderBuckets;
|
||||||
import org.oscim.renderer.light.ShadowRenderer;
|
import org.oscim.renderer.light.ShadowRenderer;
|
||||||
import org.oscim.theme.IRenderTheme;
|
|
||||||
import org.oscim.theme.styles.ExtrusionStyle;
|
import org.oscim.theme.styles.ExtrusionStyle;
|
||||||
import org.oscim.theme.styles.RenderStyle;
|
import org.oscim.theme.styles.RenderStyle;
|
||||||
import org.oscim.utils.geom.GeometryUtils;
|
import org.oscim.utils.geom.GeometryUtils;
|
||||||
@ -77,7 +76,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
|
|
||||||
private final ZoomLimiter mZoomLimiter;
|
private final ZoomLimiter mZoomLimiter;
|
||||||
|
|
||||||
protected final IRenderTheme mRenderTheme;
|
protected final VectorTileLayer mTileLayer;
|
||||||
|
|
||||||
class BuildingElement {
|
class BuildingElement {
|
||||||
MapElement element;
|
MapElement element;
|
||||||
@ -108,7 +107,8 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
public BuildingLayer(Map map, VectorTileLayer tileLayer, int zoomMin, int zoomMax, boolean mesh, boolean shadow) {
|
public BuildingLayer(Map map, VectorTileLayer tileLayer, int zoomMin, int zoomMax, boolean mesh, boolean shadow) {
|
||||||
super(map);
|
super(map);
|
||||||
|
|
||||||
tileLayer.addHook(this);
|
mTileLayer = tileLayer;
|
||||||
|
mTileLayer.addHook(this);
|
||||||
|
|
||||||
// Use zoomMin as zoomLimit to render buildings only once
|
// Use zoomMin as zoomLimit to render buildings only once
|
||||||
mZoomLimiter = new ZoomLimiter(tileLayer.getManager(), zoomMin, zoomMax, zoomMin);
|
mZoomLimiter = new ZoomLimiter(tileLayer.getManager(), zoomMin, zoomMax, zoomMin);
|
||||||
@ -119,8 +119,6 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
mRenderer = new ShadowRenderer(mExtrusionRenderer);
|
mRenderer = new ShadowRenderer(mExtrusionRenderer);
|
||||||
else if (POST_AA)
|
else if (POST_AA)
|
||||||
mRenderer = new OffscreenRenderer(Mode.SSAO_FXAA, mRenderer);
|
mRenderer = new OffscreenRenderer(Mode.SSAO_FXAA, mRenderer);
|
||||||
|
|
||||||
mRenderTheme = tileLayer.getTheme();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -182,7 +180,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
int height = 0; // cm
|
int height = 0; // cm
|
||||||
int minHeight = 0; // cm
|
int minHeight = 0; // cm
|
||||||
|
|
||||||
Float f = element.getHeight(mRenderTheme);
|
Float f = element.getHeight(mTileLayer.getTheme());
|
||||||
if (f != null)
|
if (f != null)
|
||||||
height = (int) (f * 100);
|
height = (int) (f * 100);
|
||||||
else {
|
else {
|
||||||
@ -192,7 +190,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
height = (int) (Float.parseFloat(v) * BUILDING_LEVEL_HEIGHT);
|
height = (int) (Float.parseFloat(v) * BUILDING_LEVEL_HEIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
f = element.getMinHeight(mRenderTheme);
|
f = element.getMinHeight(mTileLayer.getTheme());
|
||||||
if (f != null)
|
if (f != null)
|
||||||
minHeight = (int) (f * 100);
|
minHeight = (int) (f * 100);
|
||||||
else {
|
else {
|
||||||
@ -273,9 +271,9 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook, ZoomLim
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected String getKeyOrDefault(String key) {
|
protected String getKeyOrDefault(String key) {
|
||||||
if (mRenderTheme == null)
|
if (mTileLayer.getTheme() == null)
|
||||||
return key;
|
return key;
|
||||||
String res = mRenderTheme.transformKey(key);
|
String res = mTileLayer.getTheme().transformKey(key);
|
||||||
return res != null ? res : key;
|
return res != null ? res : key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user