Commit a193a6c8 authored by Luna Riegel's avatar Luna Riegel
Browse files

Refactor: Use TopologyErrorNode in ErrorItemVisitor

parent d1d9a549
......@@ -53,13 +53,13 @@ import de.hft.stuttgart.citydoctor2.gui.tree.node.GeometryNode;
import de.hft.stuttgart.citydoctor2.gui.tree.node.LinearRingNode;
import de.hft.stuttgart.citydoctor2.gui.tree.node.PolygonNode;
import de.hft.stuttgart.citydoctor2.gui.tree.node.TextNode;
import de.hft.stuttgart.citydoctor2.gui.tree.node.TopologyErrorNode;
import de.hft.stuttgart.citydoctor2.gui.tree.node.VertexNode;
import de.hft.stuttgart.citydoctor2.math.Triangle3d;
import de.hft.stuttgart.citydoctor2.utils.Localization;
import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection;
import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection.IntersectionType;
import javafx.scene.control.TreeItem;
import org.apache.commons.lang3.NotImplementedException;
public class ErrorItemVisitor extends AbstractErrorVisitor {
......@@ -464,20 +464,30 @@ public class ErrorItemVisitor extends AbstractErrorVisitor {
@Override
public void visit(FeatureCollisionError err){
GeometryNode subjectGeoNode = new GeometryNode(err.getSubjectGeom());
TopologyErrorNode subjectGeoNode = new TopologyErrorNode( err.getSubjectGeom().getDisplayText(),
renderer -> renderer.highlightTopoErrorGeometry(err.getSubjectGeom(), false));
TreeItem<Renderable> subjectGeoItem = new TreeItem<>(subjectGeoNode);
for(Map.Entry<Polygon, List<Polygon>> e: err.getCollisionMap().entrySet()){
PolygonNode subjectPolyNode = new PolygonNode(e.getKey(), CheckStatus.NOT_CHECKED);
Polygon subject = e.getKey();
TopologyErrorNode subjectPolyNode = new TopologyErrorNode(subject.toString(),
renderer -> renderer.highlightTopoErrorPolygons(subject, e.getValue()));
TreeItem<Renderable> subjectPolyItem = new TreeItem<>(subjectPolyNode);
for(Polygon poly: e.getValue()){
PolygonNode collidingPolyNode = new PolygonNode(poly, CheckStatus.NOT_CHECKED);
TopologyErrorNode collidingPolyNode = new TopologyErrorNode(poly.toString(),
renderer -> renderer.highlightTopoErrorPolygons(e.getKey(), poly));
TreeItem<Renderable> collidingPolyItem = new TreeItem<>(collidingPolyNode);
subjectPolyItem.getChildren().add(collidingPolyItem);
}
subjectGeoItem.getChildren().add(subjectPolyItem);
}
TopologyErrorNode candidateNode = new TopologyErrorNode("Colliding Feature: " + err.getCollidingFeatureId().toString(), renderer -> {
renderer.addCandidateSkeletonHighlight(err.getCollidingFeatureId());
});
TreeItem<Renderable> candidateItem = new TreeItem<>(candidateNode);
root.getChildren().add(candidateItem);
root.getChildren().add(subjectGeoItem);
//TODO: Implement handling of error here
// Will require new Error Node-type that is capable of rendering 2 CityObjects
}
......
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