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
aeb56f2e
Commit
aeb56f2e
authored
Feb 11, 2026
by
Luna Riegel
Browse files
Feat: Add feature collision error to ErrorVisitors
parent
d900ea38
Changes
7
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java
View file @
aeb56f2e
...
@@ -7,6 +7,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
...
@@ -7,6 +7,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
...
@@ -212,4 +213,7 @@ public abstract class AbstractErrorVisitor implements ErrorVisitor {
...
@@ -212,4 +213,7 @@ public abstract class AbstractErrorVisitor implements ErrorVisitor {
public
void
visit
(
XMLValidationError
err
)
{
public
void
visit
(
XMLValidationError
err
)
{
}
}
@Override
public
void
visit
(
FeatureCollisionError
err
){
}
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java
View file @
aeb56f2e
...
@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
...
@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
...
@@ -153,4 +154,6 @@ public interface ErrorVisitor {
...
@@ -153,4 +154,6 @@ public interface ErrorVisitor {
public
void
visit
(
XMLValidationError
err
);
public
void
visit
(
XMLValidationError
err
);
public
void
visit
(
FeatureCollisionError
err
);
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java
View file @
aeb56f2e
...
@@ -20,6 +20,8 @@ package de.hft.stuttgart.citydoctor2.check;
...
@@ -20,6 +20,8 @@ package de.hft.stuttgart.citydoctor2.check;
import
java.util.List
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
org.apache.commons.lang3.NotImplementedException
;
import
org.xmlobjects.gml.model.measures.Angle
;
import
org.xmlobjects.gml.model.measures.Angle
;
import
org.xmlobjects.gml.model.measures.Length
;
import
org.xmlobjects.gml.model.measures.Length
;
...
@@ -410,4 +412,9 @@ public class QualityAdeErrorVisitor extends AbstractErrorVisitor {
...
@@ -410,4 +412,9 @@ public class QualityAdeErrorVisitor extends AbstractErrorVisitor {
// not translated
// not translated
}
}
@Override
public
void
visit
(
FeatureCollisionError
err
){
throw
new
NotImplementedException
();
//TODO: Implement handling of error here
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalErrorVisitor.java
View file @
aeb56f2e
...
@@ -9,6 +9,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
...
@@ -9,6 +9,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
...
@@ -43,6 +44,7 @@ import de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError;
...
@@ -43,6 +44,7 @@ import de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError;
import
de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError
;
import
de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError
;
import
de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError
;
import
de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError
;
import
de.hft.stuttgart.citydoctor2.check.error.XMLValidationError
;
import
de.hft.stuttgart.citydoctor2.check.error.XMLValidationError
;
import
org.apache.commons.lang3.NotImplementedException
;
public
class
GlobalErrorVisitor
implements
ErrorVisitor
{
public
class
GlobalErrorVisitor
implements
ErrorVisitor
{
...
@@ -229,4 +231,8 @@ public class GlobalErrorVisitor implements ErrorVisitor {
...
@@ -229,4 +231,8 @@ public class GlobalErrorVisitor implements ErrorVisitor {
+
" - "
+
err
.
getMessage
());
+
" - "
+
err
.
getMessage
());
}
}
@Override
public
void
visit
(
FeatureCollisionError
err
){
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/HighlightController.java
View file @
aeb56f2e
...
@@ -219,4 +219,6 @@ public class HighlightController {
...
@@ -219,4 +219,6 @@ public class HighlightController {
highlightEdge
(
t
.
getP2
(),
t
.
getP3
(),
currentTriGeom
.
getMovedBy
());
highlightEdge
(
t
.
getP2
(),
t
.
getP3
(),
currentTriGeom
.
getMovedBy
());
highlightEdge
(
t
.
getP3
(),
t
.
getP1
(),
currentTriGeom
.
getMovedBy
());
highlightEdge
(
t
.
getP3
(),
t
.
getP1
(),
currentTriGeom
.
getMovedBy
());
}
}
//TODO: Implement highlighting for FeatureCollisions and other Topological checks
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java
View file @
aeb56f2e
...
@@ -11,6 +11,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError;
...
@@ -11,6 +11,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
...
@@ -51,6 +52,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
...
@@ -51,6 +52,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
javafx.scene.paint.Color
;
import
javafx.scene.paint.Color
;
import
org.apache.commons.lang3.NotImplementedException
;
public
class
ListErrorVisitor
implements
ErrorVisitor
{
public
class
ListErrorVisitor
implements
ErrorVisitor
{
...
@@ -301,4 +303,10 @@ public class ListErrorVisitor implements ErrorVisitor {
...
@@ -301,4 +303,10 @@ public class ListErrorVisitor implements ErrorVisitor {
public
void
visit
(
XMLValidationError
err
)
{
public
void
visit
(
XMLValidationError
err
)
{
// nothing to display
// nothing to display
}
}
@Override
public
void
visit
(
FeatureCollisionError
err
){
throw
new
NotImplementedException
();
//TODO: Implement handling of error here
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java
View file @
aeb56f2e
...
@@ -11,6 +11,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
...
@@ -11,6 +11,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.FeatureCollisionError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
...
@@ -56,6 +57,7 @@ import de.hft.stuttgart.citydoctor2.utils.Localization;
...
@@ -56,6 +57,7 @@ import de.hft.stuttgart.citydoctor2.utils.Localization;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection.IntersectionType
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection.IntersectionType
;
import
javafx.scene.control.TreeItem
;
import
javafx.scene.control.TreeItem
;
import
org.apache.commons.lang3.NotImplementedException
;
public
class
ErrorItemVisitor
extends
AbstractErrorVisitor
{
public
class
ErrorItemVisitor
extends
AbstractErrorVisitor
{
...
@@ -458,4 +460,10 @@ public class ErrorItemVisitor extends AbstractErrorVisitor {
...
@@ -458,4 +460,10 @@ public class ErrorItemVisitor extends AbstractErrorVisitor {
root
.
getChildren
().
add
(
polyItem
);
root
.
getChildren
().
add
(
polyItem
);
}
}
@Override
public
void
visit
(
FeatureCollisionError
err
){
throw
new
NotImplementedException
();
//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