Commit 938e4b5a authored by Riegel's avatar Riegel
Browse files

Refactor: Rework selection of render color

parent 06712902
......@@ -7,6 +7,7 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import de.hft.stuttgart.citydoctor2.utils.CopyHandler;
import de.hft.stuttgart.citydoctor2.utils.Copyable;
import javafx.scene.paint.Color;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.citygml4j.core.model.core.AbstractSpaceBoundaryProperty;
......@@ -45,6 +46,11 @@ public class TunnelConstructiveElement extends CityObject {
return parent;
}
@Override
public Color getRenderColor() {
return parent.getRenderColor();
}
@Override
public Copyable createCopyInstance() {
return new TunnelConstructiveElement(gmlTunnelElement);
......
......@@ -2,6 +2,7 @@ package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.utils.CopyHandler;
import de.hft.stuttgart.citydoctor2.utils.Copyable;
import javafx.scene.paint.Color;
import org.citygml4j.core.model.tunnel.TunnelFurnitureProperty;
import java.io.Serial;
......@@ -35,6 +36,11 @@ public class TunnelHollow extends AbstractRoom {
return parent;
}
@Override
public Color getRenderColor() {
return parent.getRenderColor();
}
@Override
public void fillValues(Copyable original, CopyHandler handler) {
super.fillValues(original, handler);
......@@ -45,7 +51,7 @@ public class TunnelHollow extends AbstractRoom {
@Override
public CityObject getTopLevelCityObject() {
return getParent().getTopLevelCityObject();
return parent.getTopLevelCityObject();
}
@Override
......
......@@ -22,6 +22,7 @@ import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import de.hft.stuttgart.citydoctor2.utils.Copyable;
import javafx.scene.paint.Color;
import org.citygml4j.core.model.core.AbstractCityObject;
import org.citygml4j.core.model.vegetation.AbstractVegetationObject;
import org.citygml4j.core.model.vegetation.PlantCover;
......@@ -181,6 +182,11 @@ public class Vegetation extends CityObject {
return citygmlVegetation;
}
@Override
public Color getRenderColor() {
return Color.LIGHTGREEN;
}
@Override
public void unsetGmlGeometries() {
if (type == VegetationType.SOLITARY_VEGETATION_OBJECT) {
......
......@@ -23,6 +23,7 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import de.hft.stuttgart.citydoctor2.utils.CopyHandler;
import de.hft.stuttgart.citydoctor2.utils.Copyable;
import javafx.scene.paint.Color;
import org.citygml4j.core.model.core.AbstractCityObject;
import org.citygml4j.core.model.waterbody.WaterBody;
import org.citygml4j.core.util.geometry.GeometryFactory;
......@@ -100,6 +101,11 @@ public class WaterObject extends CityObject {
return gmlWater;
}
@Override
public Color getRenderColor() {
return Color.LIGHTSKYBLUE;
}
@Override
public void unsetGmlGeometries() {
gmlWater.setLod0MultiSurface(null);
......
......@@ -85,14 +85,14 @@ public class TriangulatedGeometry {
triGeom.movedBy = triGeom.findCenter(points);
addPolygonDataFromCityObjects(model.getBuildings(), triGeom, Color.WHITE, filters);
addPolygonDataFromCityObjects(model.getBridges(), triGeom, Color.CORAL, filters);
addPolygonDataFromCityObjects(model.getBridges(), triGeom, Color.LIGHTSTEELBLUE, filters);
addPolygonDataFromCityObjects(model.getTunnels(), triGeom, Color.SLATEGRAY, filters);
addPolygonDataFromCityObjects(model.getLand(), triGeom, Color.BROWN, filters);
addPolygonDataFromCityObjects(model.getTransportation(), triGeom, Color.YELLOW, filters);
addPolygonDataFromCityObjects(model.getLand(), triGeom, Color.TAN, filters);
addPolygonDataFromCityObjects(model.getTransportation(), triGeom, Color.DIMGRAY, 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);
addPolygonDataFromCityObjects(model.getGenericCityObjects(), triGeom, Color.BLACK, filters);
return triGeom;
}
......@@ -176,7 +176,7 @@ public class TriangulatedGeometry {
baseColor = Color.KHAKI;
}
}
baseColor = determineColorDependingOnParentType(p, baseColor);
double cos = normal.dot(AXIS);
......@@ -192,6 +192,15 @@ public class TriangulatedGeometry {
private Color determineColorDependingOnParentType(Polygon p, Color baseColor) {
p = p.getOriginal();
Polygon p1 = p.getLinkedFromPolygon();
Color parentColor = null;
if (p1 != null) {
parentColor = p1.getParent().getParent().getRenderColor();
} else {
parentColor = baseColor = p.getParent().getParent().getRenderColor();
}
if (parentColor != null && parentColor != Color.WHITE) {
baseColor = parentColor;
}
baseColor = changeBaseColorIfPolygonHasOpeningParent(p1, baseColor);
baseColor = changeBaseColorIfPolygonHasOpeningParent(p, baseColor);
return baseColor;
......
......@@ -30,7 +30,7 @@ public class CityObjectNode extends Renderable {
@Override
public String getText() {
return co.getGmlId().getGmlString();
return co.getDisplayText();
}
@Override
......
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