Commit 7ff5925b authored by Riegel's avatar Riegel
Browse files

Add world rendering for recently added CityObjects

parent a3786746
......@@ -719,7 +719,33 @@ public class Renderer {
}
public void renderCityFurniture(List<CityFurniture> cityFurniture){
renderCityObjects(cityFurniture, Color.CYAN);
errorUpdater = null;
refresher = () -> {
Platform.runLater(() -> {
loadingDialog.show();
clearGeometryTrees();
});
Thread t = new Thread(() -> {
Set<ConcretePolygon> polygons = new HashSet<>();
for (CityFurniture cf : cityFurniture) {
collectCityFurniture(polygons, cf);
}
currentTriGeom = TriangulatedGeometry.of(polygons, Color.BLUEVIOLET);
errVisitor.setGeometry(currentTriGeom);
Platform.runLater(() -> {
setupRenderState();
mainWindow.zoomOutForBoundingBox(BoundingBox.of(polygons));
loadingDialog.hide();
});
});
t.setUncaughtExceptionHandler((thread, e) -> {
Platform.runLater(() -> loadingDialog.hide());
logger.catching(e);
});
t.start();
};
refresher.run();
}
public void renderTerrain(List<CityObject> land) {
......@@ -809,6 +835,10 @@ public class Renderer {
}
}
private void collectCityFurniture(Set<ConcretePolygon> polygons, CityFurniture cf) {
addPolygons(cf, polygons);
}
private void addConcretePolygons(Set<ConcretePolygon> polygons, Geometry geom) {
for (Polygon p : geom.getPolygons()) {
polygons.add(p.getOriginal());
......
......@@ -110,6 +110,8 @@ public class TriangulatedGeometry {
addPolygonDataFromCityObjects(model.getTransportation(), triGeom, Color.YELLOW, filters);
addPolygonDataFromCityObjects(model.getVegetation(), triGeom, Color.LIGHTGREEN, filters);
addPolygonDataFromCityObjects(model.getWater(), triGeom, Color.LIGHTSKYBLUE, filters);
addPolygonDataFromCityObjects(model.getCityFurniture(), triGeom, Color.BLUEVIOLET, filters);
addPolygonDataFromCityObjects(model.getGenericCityObjects(), triGeom, Color.DARKGRAY, filters);
return triGeom;
}
......
......@@ -26,6 +26,7 @@ public class AllCityFurnitureNode extends Renderable{
@Override
public void visit(Renderer renderer) {
renderer.clearCurrentRender();
renderer.renderCityFurniture(cityFurnitures);
}
......
......@@ -3,6 +3,7 @@ package de.hft.stuttgart.citydoctor2.gui.tree;
import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject;
import de.hft.stuttgart.citydoctor2.gui.CheckStatus;
import de.hft.stuttgart.citydoctor2.gui.Renderer;
import javafx.scene.paint.Color;
import java.util.List;
......@@ -41,6 +42,7 @@ public class AllOtherObjectsNode extends Renderable{
@Override
public void visit(Renderer renderer) {
renderer.clearCurrentRender();
renderer.renderCityObjects(genericObjects, Color.GRAY);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment