Skip to content

Commit

Permalink
Samples: add shadows test #655
Browse files Browse the repository at this point in the history
  • Loading branch information
devemux86 committed Feb 19, 2019
1 parent eb3efa7 commit 7c29768
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions vtm-playground/src/org/oscim/test/MapsforgeTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright 2016-2018 devemux86
* Copyright 2018 Gustl22
* Copyright 2016-2019 devemux86
* Copyright 2018-2019 Gustl22
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
Expand All @@ -19,13 +19,16 @@

import org.oscim.core.MapPosition;
import org.oscim.core.Tile;
import org.oscim.event.Event;
import org.oscim.gdx.GdxMapApp;
import org.oscim.gdx.poi3d.Poi3DLayer;
import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.buildings.S3DBLayer;
import org.oscim.layers.tile.vector.VectorTileLayer;
import org.oscim.layers.tile.vector.labeling.LabelLayer;
import org.oscim.map.Map;
import org.oscim.renderer.BitmapRenderer;
import org.oscim.renderer.ExtrusionRenderer;
import org.oscim.renderer.GLViewport;
import org.oscim.scalebar.DefaultMapScaleBar;
import org.oscim.scalebar.ImperialUnitAdapter;
Expand All @@ -40,6 +43,8 @@

public class MapsforgeTest extends GdxMapApp {

private static final boolean SHADOWS = false;

private File mapFile;
private boolean poi3d;
private boolean s3db;
Expand All @@ -63,10 +68,8 @@ public void createLayers() {
VectorTileLayer l = mMap.setBaseMap(tileSource);
loadTheme(null);

if (s3db)
mMap.layers().add(new S3DBLayer(mMap, l));
else
mMap.layers().add(new BuildingLayer(mMap, l));
BuildingLayer buildingLayer = s3db ? new S3DBLayer(mMap, l) : new BuildingLayer(mMap, l);
mMap.layers().add(buildingLayer);

if (poi3d)
mMap.layers().add(new Poi3DLayer(mMap, l));
Expand All @@ -92,6 +95,23 @@ public void createLayers() {
pos.setByBoundingBox(info.boundingBox, Tile.SIZE * 4, Tile.SIZE * 4);
}
mMap.setMapPosition(pos);

if (SHADOWS) {
final ExtrusionRenderer extrusionRenderer = buildingLayer.getExtrusionRenderer();
mMap.events.bind(new Map.UpdateListener() {
@Override
public void onMapEvent(Event e, MapPosition mapPosition) {
long t = System.currentTimeMillis();
float progress = (((t % 2000) / 1000f));

extrusionRenderer.getSun().setProgress(progress);
extrusionRenderer.getSun().updatePosition();
extrusionRenderer.getSun().updateColor(); // only relevant for shadow implementation

mMap.updateMap(true);
}
});
}
}

@Override
Expand Down

0 comments on commit 7c29768

Please sign in to comment.