Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
a193a6c8
Commit
a193a6c8
authored
Feb 18, 2026
by
Luna Riegel
Browse files
Refactor: Use TopologyErrorNode in ErrorItemVisitor
parent
d1d9a549
Changes
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java
View file @
a193a6c8
...
...
@@ -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
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment