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
4921f946
Commit
4921f946
authored
Jun 11, 2025
by
Beuster
Browse files
Merge branch 'dev' into test-environment
parents
32f20330
31710fb8
Pipeline
#11358
passed with stage
in 1 minute and 35 seconds
Changes
36
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java
0 → 100644
View file @
4921f946
package
de.hft.stuttgart.citydoctor2.check
;
import
de.hft.stuttgart.citydoctor2.check.error.AllPolygonsWrongOrientationError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeInvalidError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonManifoldVertexError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError
;
import
de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonNormalsDeviation
;
import
de.hft.stuttgart.citydoctor2.check.error.NotCeilingError
;
import
de.hft.stuttgart.citydoctor2.check.error.NotFloorError
;
import
de.hft.stuttgart.citydoctor2.check.error.NotGroundError
;
import
de.hft.stuttgart.citydoctor2.check.error.NotWallError
;
import
de.hft.stuttgart.citydoctor2.check.error.NullAreaError
;
import
de.hft.stuttgart.citydoctor2.check.error.PlanarityError
;
import
de.hft.stuttgart.citydoctor2.check.error.PointTouchesEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonHoleOutsideError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonInteriorDisconnectedError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonIntersectingRingsError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonSameOrientationError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonWithoutSurfaceError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonWrongOrientationError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingSelfIntersectionError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError
;
import
de.hft.stuttgart.citydoctor2.check.error.SchematronError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidNotClosedError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError
;
import
de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError
;
import
de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError
;
import
de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError
;
public
abstract
class
AbstractErrorVisitor
implements
ErrorVisitor
{
@Override
public
void
visit
(
RingError
err
)
{
}
@Override
public
void
visit
(
PolygonError
err
)
{
}
@Override
public
void
visit
(
RingSelfIntersectionError
err
)
{
}
@Override
public
void
visit
(
PlanarityError
err
)
{
}
@Override
public
void
visit
(
PolygonHoleOutsideError
err
)
{
}
@Override
public
void
visit
(
NonManifoldEdgeError
err
)
{
}
@Override
public
void
visit
(
MultipleConnectedComponentsError
err
)
{
}
@Override
public
void
visit
(
NestedRingError
err
)
{
}
@Override
public
void
visit
(
NonManifoldVertexError
err
)
{
}
@Override
public
void
visit
(
PolygonWrongOrientationError
err
)
{
}
@Override
public
void
visit
(
PolygonSameOrientationError
err
)
{
}
@Override
public
void
visit
(
SolidNotClosedError
err
)
{
}
@Override
public
void
visit
(
DependenciesNotMetError
err
)
{
}
@Override
public
void
visit
(
UnknownCheckError
err
)
{
}
@Override
public
void
visit
(
RingNotClosedError
err
)
{
}
@Override
public
void
visit
(
ConsecutivePointSameError
err
)
{
}
@Override
public
void
visit
(
AllPolygonsWrongOrientationError
err
)
{
}
@Override
public
void
visit
(
PolygonInteriorDisconnectedError
err
)
{
}
@Override
public
void
visit
(
NullAreaError
err
)
{
}
@Override
public
void
visit
(
RingTooFewPointsError
err
)
{
}
@Override
public
void
visit
(
NonPlanarPolygonNormalsDeviation
err
)
{
}
@Override
public
void
visit
(
NonPlanarPolygonDistancePlaneError
err
)
{
}
@Override
public
void
visit
(
PolygonIntersectingRingsError
err
)
{
}
@Override
public
void
visit
(
SolidSelfIntError
err
)
{
}
@Override
public
void
visit
(
TooFewPolygonsError
err
)
{
}
@Override
public
void
visit
(
RingDuplicatePointError
err
)
{
}
@Override
public
void
visit
(
RingEdgeIntersectionError
err
)
{
}
@Override
public
void
visit
(
PointTouchesEdgeError
err
)
{
}
@Override
public
void
visit
(
NotCeilingError
err
)
{
}
@Override
public
void
visit
(
NotFloorError
err
)
{
}
@Override
public
void
visit
(
NotWallError
err
)
{
}
@Override
public
void
visit
(
NotGroundError
err
)
{
}
@Override
public
void
visit
(
CheckError
err
)
{
}
@Override
public
void
visit
(
SchematronError
err
)
{
}
@Override
public
void
visit
(
SurfaceUnfragmentedError
err
)
{
}
@Override
public
void
visit
(
DegeneratedRingError
err
)
{
}
@Override
public
void
visit
(
AttributeMissingError
err
)
{
}
@Override
public
void
visit
(
AttributeValueWrongError
err
)
{
}
@Override
public
void
visit
(
AttributeInvalidError
err
)
{
}
@Override
public
void
visit
(
PolygonWithoutSurfaceError
err
)
{
}
@Override
public
void
visit
(
SolidError
err
)
{
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java
View file @
4921f946
...
...
@@ -23,6 +23,7 @@ import de.hft.stuttgart.citydoctor2.check.error.AttributeInvalidError;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError
;
import
de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError
;
import
de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError
;
import
de.hft.stuttgart.citydoctor2.check.error.NestedRingError
;
...
...
@@ -35,7 +36,9 @@ import de.hft.stuttgart.citydoctor2.check.error.NotFloorError;
import
de.hft.stuttgart.citydoctor2.check.error.NotGroundError
;
import
de.hft.stuttgart.citydoctor2.check.error.NotWallError
;
import
de.hft.stuttgart.citydoctor2.check.error.NullAreaError
;
import
de.hft.stuttgart.citydoctor2.check.error.PlanarityError
;
import
de.hft.stuttgart.citydoctor2.check.error.PointTouchesEdgeError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonHoleOutsideError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonInteriorDisconnectedError
;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonIntersectingRingsError
;
...
...
@@ -44,13 +47,15 @@ import de.hft.stuttgart.citydoctor2.check.error.PolygonWithoutSurfaceError;
import
de.hft.stuttgart.citydoctor2.check.error.PolygonWrongOrientationError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingSelfIntersectionError
;
import
de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError
;
import
de.hft.stuttgart.citydoctor2.check.error.SchematronError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidNotClosedError
;
import
de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError
;
import
de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError
;
import
de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError
;
import
de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError
;
import
de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError
;
...
...
@@ -62,7 +67,15 @@ import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
*
*/
public
interface
ErrorVisitor
{
public
void
visit
(
RingError
err
);
public
void
visit
(
PolygonError
err
);
public
void
visit
(
RingSelfIntersectionError
err
);
public
void
visit
(
PlanarityError
err
);
public
void
visit
(
PolygonHoleOutsideError
err
);
public
void
visit
(
NonManifoldEdgeError
err
);
...
...
@@ -119,8 +132,6 @@ public interface ErrorVisitor {
public
void
visit
(
NotGroundError
err
);
public
void
visit
(
CheckError
err
);
public
void
visit
(
SchematronError
err
);
public
void
visit
(
SurfaceUnfragmentedError
err
);
...
...
@@ -134,5 +145,9 @@ public interface ErrorVisitor {
public
void
visit
(
AttributeInvalidError
err
);
public
void
visit
(
PolygonWithoutSurfaceError
err
);
public
void
visit
(
CheckError
err
);
public
void
visit
(
SolidError
err
);
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java
View file @
4921f946
...
...
@@ -89,7 +89,7 @@ import de.hft.stuttgart.quality.model.types.SolidSelfIntersectionError;
import
de.hft.stuttgart.quality.model.types.SolidTooFewPolygonsError
;
import
de.hft.stuttgart.quality.model.types.ValidationResult
;
public
class
QualityAdeErrorVisitor
implem
en
t
s
ErrorVisitor
{
public
class
QualityAdeErrorVisitor
ext
en
d
s
Abstract
ErrorVisitor
{
private
final
ValidationResult
res
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/AllPolygonsWrongOrientationError.java
View file @
4921f946
...
...
@@ -18,9 +18,9 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
import
de.hft.stuttgart.citydoctor2.check.ErrorVisitor
;
import
de.hft.stuttgart.citydoctor2.check.HealingMethod
;
...
...
@@ -28,47 +28,35 @@ import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlElement
;
import
java.io.Serial
;
/**
* Error when all polygons are oriented wrong.
*
* @author Matthias Betz
*
*/
public
class
AllPolygonsWrongOrientationError
implem
en
t
s
Check
Error
{
public
class
AllPolygonsWrongOrientationError
ext
en
d
s
Solid
Error
{
@Serial
private
static
final
long
serialVersionUID
=
2263993313732858840L
;
private
final
Geometry
geom
;
public
AllPolygonsWrongOrientationError
(
Geometry
geom
)
{
this
.
geom
=
geom
;
}
public
Geometry
getGeometry
()
{
return
geom
;
super
(
geom
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"AllPolygonsWrongOrientationError [geom="
+
geom
+
"]"
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
geom
);
return
"AllPolygonsWrongOrientationError [geom="
+
getGeometry
()
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/ConsecutivePointSameError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -29,8 +30,6 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
java.io.Serial
;
/**
* When two points are too close to each other and are consecutive in a linear
* ring, this error is created.
...
...
@@ -38,25 +37,20 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
ConsecutivePointSameError
implem
en
t
s
Check
Error
{
public
class
ConsecutivePointSameError
ext
en
d
s
Ring
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
6355935751554777494L
;
private
final
LinearRing
lr
;
private
final
Vertex
p1
;
private
final
Vertex
p2
;
public
ConsecutivePointSameError
(
LinearRing
lr
,
Vertex
p1
,
Vertex
p2
)
{
this
.
lr
=
lr
;
super
(
lr
)
;
this
.
p1
=
p1
;
this
.
p2
=
p2
;
}
public
LinearRing
getRing
()
{
return
lr
;
}
public
Vertex
getVertex1
()
{
return
p1
;
}
...
...
@@ -67,22 +61,23 @@ public class ConsecutivePointSameError implements CheckError {
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"ConsecutivePointSameError [lr="
+
lr
+
", p1="
+
p1
+
", p2="
+
p2
+
"]"
;
return
"ConsecutivePointSameError [lr="
+
getRing
()
+
", p1="
+
p1
+
", p2="
+
p2
+
"]"
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
lr
);
super
.
report
(
report
);
report
.
add
(
"duplicate point 1"
,
p1
);
report
.
add
(
"duplicate point 2"
,
p2
);
}
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/DegeneratedRingError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -28,37 +29,30 @@ import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlElement
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
java.io.Serial
;
public
class
DegeneratedRingError
implements
CheckError
{
public
class
DegeneratedRingError
extends
RingSelfIntersectionError
{
@Serial
private
static
final
long
serialVersionUID
=
865493182529055651L
;
private
final
LinearRing
lr
;
public
DegeneratedRingError
(
LinearRing
lr
)
{
this
.
lr
=
lr
;
super
(
lr
)
;
}
public
LinearRing
getRing
()
{
return
lr
;
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
"type"
,
"degenerated ring"
);
report
.
add
(
getRing
()
);
super
.
report
(
report
);
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/MultipleConnectedComponentsError.java
View file @
4921f946
...
...
@@ -21,7 +21,6 @@ package de.hft.stuttgart.citydoctor2.check.error;
import
java.io.Serial
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -39,30 +38,25 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public
class
MultipleConnectedComponentsError
implem
en
t
s
Check
Error
{
public
class
MultipleConnectedComponentsError
ext
en
d
s
Solid
Error
{
@Serial
private
static
final
long
serialVersionUID
=
2152069835068857036L
;
private
final
Geometry
geom
;
private
final
List
<
List
<
Polygon
>>
components
;
public
MultipleConnectedComponentsError
(
Geometry
geom
,
List
<
List
<
Polygon
>>
components
)
{
this
.
geom
=
geom
;
super
(
geom
)
;
this
.
components
=
components
;
}
public
Geometry
getGeometry
()
{
return
geom
;
}
public
List
<
List
<
Polygon
>>
getComponents
()
{
return
components
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
geom
);
super
.
report
(
report
);
for
(
int
i
=
0
;
i
<
components
.
size
();
i
++)
{
List
<
Polygon
>
polygons
=
components
.
get
(
i
);
report
.
addPolygons
(
"component nr: "
+
(
i
+
1
),
polygons
);
...
...
@@ -71,17 +65,18 @@ public class MultipleConnectedComponentsError implements CheckError {
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"MultipleConnectedComponentsError [geom="
+
ge
om
+
", components="
+
components
+
"]"
;
return
"MultipleConnectedComponentsError [geom="
+
ge
tGeometry
()
+
", components="
+
components
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NestedRingError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -29,32 +30,26 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
java.io.Serial
;
/**
* If an inner ring is with in the boundaries of another, this error is created.
*
* @author Matthias Betz
*
*/
public
class
NestedRingError
implem
en
t
s
Check
Error
{
public
class
NestedRingError
ext
en
d
s
Polygon
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
3396113374745830193L
;
private
final
Polygon
p
;
private
final
LinearRing
innerRing
;
private
final
LinearRing
withinRing
;
public
NestedRingError
(
Polygon
p
,
LinearRing
innerRing
,
LinearRing
withinRing
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
innerRing
=
innerRing
;
this
.
withinRing
=
withinRing
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
LinearRing
getInnerRing
()
{
return
innerRing
;
...
...
@@ -66,23 +61,24 @@ public class NestedRingError implements CheckError {
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
innerRing
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"NestedRingError [p="
+
p
+
", innerRing="
+
innerRing
+
"]"
;
return
"NestedRingError [p="
+
getPolygon
()
+
", innerRing="
+
innerRing
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonManifoldEdgeError.java
View file @
4921f946
...
...
@@ -21,7 +21,6 @@ package de.hft.stuttgart.citydoctor2.check.error;
import
java.io.Serial
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -38,48 +37,44 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
* @author Matthias Betz
*
*/
public
class
NonManifoldEdgeError
implem
en
t
s
Check
Error
{
public
class
NonManifoldEdgeError
ext
en
d
s
Solid
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
6742948557014332402L
;
private
final
List
<
Edge
>
edges
;
private
final
Geometry
geom
;
public
NonManifoldEdgeError
(
Geometry
geom
,
List
<
Edge
>
edges
)
{
super
(
geom
);
this
.
edges
=
edges
;
this
.
geom
=
geom
;
}
public
List
<
Edge
>
getEdges
()
{
return
edges
;
}
public
Geometry
getGeometry
()
{
return
geom
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
geom
);
super
.
report
(
report
);
for
(
Edge
e
:
edges
)
{
report
.
add
(
e
);
}
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"ManifoldEdgeError [edges="
+
edges
+
", geom="
+
ge
om
+
"]"
;
return
"ManifoldEdgeError [edges="
+
edges
+
", geom="
+
ge
tGeometry
()
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonManifoldVertexError.java
View file @
4921f946
...
...
@@ -21,7 +21,6 @@ package de.hft.stuttgart.citydoctor2.check.error;
import
java.io.Serial
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -40,17 +39,16 @@ import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
* @author Matthias Betz
*
*/
public
class
NonManifoldVertexError
implem
en
t
s
Check
Error
{
public
class
NonManifoldVertexError
ext
en
d
s
Solid
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
3915669943428175777L
;
private
final
List
<
List
<
Polygon
>>
components
;
private
final
Geometry
geom
;
private
final
Vertex
v
;
public
NonManifoldVertexError
(
Geometry
geom
,
List
<
List
<
Polygon
>>
components
,
Vertex
v
)
{
this
.
geom
=
geom
;
super
(
geom
)
;
this
.
components
=
components
;
this
.
v
=
v
;
}
...
...
@@ -59,17 +57,13 @@ public class NonManifoldVertexError implements CheckError {
return
components
;
}
public
Geometry
getGeometry
()
{
return
geom
;
}
public
Vertex
getVertex
()
{
return
v
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
geom
);
super
.
report
(
report
);
report
.
add
(
v
);
for
(
int
i
=
0
;
i
<
components
.
size
();
i
++)
{
List
<
Polygon
>
polygons
=
components
.
get
(
i
);
...
...
@@ -83,17 +77,18 @@ public class NonManifoldVertexError implements CheckError {
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"NonManifoldVertexError [components="
+
components
+
", geom="
+
ge
om
+
", v="
+
v
+
"]"
;
return
"NonManifoldVertexError [components="
+
components
+
", geom="
+
ge
tGeometry
()
+
", v="
+
v
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonPlanarPolygonDistancePlaneError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -31,8 +32,6 @@ import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import
de.hft.stuttgart.citydoctor2.math.Plane
;
import
de.hft.stuttgart.citydoctor2.utils.Localization
;
import
java.io.Serial
;
/**
* Error object for planarity errors containing the polygon, the regression
* plane and the distance to the plane.
...
...
@@ -40,18 +39,17 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
NonPlanarPolygonDistancePlaneError
implem
en
t
s
Check
Error
{
public
class
NonPlanarPolygonDistancePlaneError
ext
en
d
s
Planarity
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
3504364055236383519L
;
private
final
Polygon
p
;
private
final
double
distance
;
private
final
Vertex
v
;
private
final
Plane
plane
;
public
NonPlanarPolygonDistancePlaneError
(
Polygon
p
,
double
distance
,
Vertex
v
,
Plane
plane
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
distance
=
distance
;
this
.
v
=
v
;
this
.
plane
=
plane
;
...
...
@@ -61,10 +59,6 @@ public class NonPlanarPolygonDistancePlaneError implements CheckError {
return
plane
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
double
getDistance
()
{
return
distance
;
}
...
...
@@ -75,24 +69,25 @@ public class NonPlanarPolygonDistancePlaneError implements CheckError {
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
v
);
report
.
add
(
Localization
.
getText
(
"DistanceError.distanceFromPlane"
),
distance
);
}
@Override
public
String
toString
()
{
return
"NonPlanarPolygonDistancePlaneError [p="
+
p
+
", distance="
+
distance
+
", v="
+
v
+
", plane="
+
plane
+
"]"
;
return
"NonPlanarPolygonDistancePlaneError [p="
+
getPolygon
()
+
", distance="
+
distance
+
", v="
+
v
+
", plane="
+
plane
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonPlanarPolygonNormalsDeviation.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -28,8 +29,6 @@ import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlElement
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
java.io.Serial
;
/**
* When the normal of the triangles created from the triangulation of the
* polygon have a too large angle between them, this error is created.
...
...
@@ -37,46 +36,42 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
NonPlanarPolygonNormalsDeviation
implem
en
t
s
Check
Error
{
public
class
NonPlanarPolygonNormalsDeviation
ext
en
d
s
Planarity
Error
{
@Serial
private
static
final
long
serialVersionUID
=
69073161885265794L
;
private
final
Polygon
p
;
private
final
double
deviation
;
public
NonPlanarPolygonNormalsDeviation
(
Polygon
p
,
double
deviation
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
deviation
=
deviation
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
double
getDeviation
()
{
return
deviation
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
"normal deviation (in rad)"
,
deviation
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"NormalDeviationError [p="
+
p
+
", deviation="
+
deviation
+
"]"
;
return
"NormalDeviationError [p="
+
getPolygon
()
+
", deviation="
+
deviation
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NullAreaError.java
View file @
4921f946
...
...
@@ -18,9 +18,9 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
import
de.hft.stuttgart.citydoctor2.check.ErrorVisitor
;
import
de.hft.stuttgart.citydoctor2.check.HealingMethod
;
...
...
@@ -28,47 +28,35 @@ import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlElement
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
java.io.Serial
;
/**
* When a linear ring has a near zero area this error is created.
*
* @author Matthias Betz
*
*/
public
class
NullAreaError
implem
en
t
s
Check
Error
{
public
class
NullAreaError
ext
en
d
s
Ring
Error
{
@Serial
private
static
final
long
serialVersionUID
=
1358910429039553687L
;
private
final
LinearRing
lr
;
public
NullAreaError
(
LinearRing
lr
)
{
this
.
lr
=
lr
;
}
public
LinearRing
getRing
()
{
return
lr
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
lr
);
super
(
lr
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"NullAreaError [lr="
+
lr
+
"]"
;
return
"NullAreaError [lr="
+
getRing
()
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PlanarityError.java
0 → 100644
View file @
4921f946
package
de.hft.stuttgart.citydoctor2.check.error
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorVisitor
;
import
de.hft.stuttgart.citydoctor2.check.HealingMethod
;
import
de.hft.stuttgart.citydoctor2.check.ModificationListener
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
public
abstract
class
PlanarityError
extends
PolygonError
{
@Serial
private
static
final
long
serialVersionUID
=
4229597996236974570L
;
public
PlanarityError
(
Polygon
poly
)
{
super
(
poly
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PointTouchesEdgeError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -30,8 +31,6 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
java.io.Serial
;
/**
* If a point of a linear ring touches an edge of the same ring it is considered
* self intersecting and this error object is created.
...
...
@@ -39,25 +38,20 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
PointTouchesEdgeError
implem
en
t
s
Check
Error
{
public
class
PointTouchesEdgeError
ext
en
d
s
RingSelfIntersection
Error
{
@Serial
private
static
final
long
serialVersionUID
=
3277456707271748954L
;
private
final
LinearRing
lr
;
private
final
Edge
e
;
private
final
Vertex
v
;
public
PointTouchesEdgeError
(
LinearRing
lr
,
Edge
e
,
Vertex
v
)
{
this
.
lr
=
lr
;
super
(
lr
)
;
this
.
e
=
e
;
this
.
v
=
v
;
}
public
LinearRing
getRing
()
{
return
lr
;
}
public
Edge
getEdge
()
{
return
e
;
}
...
...
@@ -69,24 +63,25 @@ public class PointTouchesEdgeError implements CheckError {
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
"type"
,
"point touches edge"
);
report
.
add
(
lr
);
super
.
report
(
report
);
report
.
add
(
v
);
report
.
add
(
e
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"PointTouchesEdgeError [lr="
+
lr
+
", e="
+
e
+
", v="
+
v
+
"]"
;
return
"PointTouchesEdgeError [lr="
+
getRing
()
+
", e="
+
e
+
", v="
+
v
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonError.java
0 → 100644
View file @
4921f946
package
de.hft.stuttgart.citydoctor2.check.error
;
import
java.io.Serial
;
import
java.util.Objects
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorVisitor
;
import
de.hft.stuttgart.citydoctor2.check.HealingMethod
;
import
de.hft.stuttgart.citydoctor2.check.ModificationListener
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
public
abstract
class
PolygonError
implements
CheckError
{
@Serial
private
static
final
long
serialVersionUID
=
7277982425092189736L
;
private
final
Polygon
poly
;
public
PolygonError
(
Polygon
poly
)
{
Objects
.
requireNonNull
(
poly
);
this
.
poly
=
poly
;
}
public
Polygon
getPolygon
()
{
return
poly
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
poly
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonHoleOutsideError.java
View file @
4921f946
...
...
@@ -21,7 +21,6 @@ package de.hft.stuttgart.citydoctor2.check.error;
import
java.io.Serial
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -39,40 +38,36 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public
class
PolygonHoleOutsideError
implem
en
t
s
Check
Error
{
public
class
PolygonHoleOutsideError
ext
en
d
s
Polygon
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
4522153084655775231L
;
private
final
List
<
LinearRing
>
holesOutside
;
private
final
Polygon
p
;
public
PolygonHoleOutsideError
(
Polygon
p
,
List
<
LinearRing
>
holesOutside
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
holesOutside
=
holesOutside
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
List
<
LinearRing
>
getHolesOutside
()
{
return
holesOutside
;
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
for
(
LinearRing
lr
:
holesOutside
)
{
report
.
add
(
lr
);
}
...
...
@@ -80,7 +75,7 @@ public class PolygonHoleOutsideError implements CheckError {
@Override
public
String
toString
()
{
return
"HoleOutsideError [holesOutside="
+
holesOutside
+
", p="
+
p
+
"]"
;
return
"HoleOutsideError [holesOutside="
+
holesOutside
+
", p="
+
getPolygon
()
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonInteriorDisconnectedError.java
View file @
4921f946
...
...
@@ -21,7 +21,6 @@ package de.hft.stuttgart.citydoctor2.check.error;
import
java.io.Serial
;
import
java.util.List
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -39,30 +38,25 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public
class
PolygonInteriorDisconnectedError
implem
en
t
s
Check
Error
{
public
class
PolygonInteriorDisconnectedError
ext
en
d
s
Polygon
Error
{
@Serial
private
static
final
long
serialVersionUID
=
511849016699842395L
;
private
final
Polygon
p
;
private
final
List
<
LinearRing
>
connectedRings
;
public
PolygonInteriorDisconnectedError
(
Polygon
p
,
List
<
LinearRing
>
connectedRings
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
connectedRings
=
connectedRings
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
List
<
LinearRing
>
getConnectedRings
()
{
return
connectedRings
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
"connected rings"
,
""
);
for
(
LinearRing
lr
:
connectedRings
)
{
report
.
add
(
lr
);
...
...
@@ -71,17 +65,18 @@ public class PolygonInteriorDisconnectedError implements CheckError {
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"InteriorDisconnectedError [p
="
+
p
+
", connectedRings="
+
connectedRings
+
"]"
;
return
"InteriorDisconnectedError [p
olygon="
+
getPolygon
()
+
", connectedRings="
+
connectedRings
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonIntersectingRingsError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -30,8 +31,6 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.utils.SerializablePair
;
import
java.io.Serial
;
/**
* If the exterior ring and interior rings are intersecting each other, it
* results in a polygon self intersection and this error is created.
...
...
@@ -39,47 +38,43 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
PolygonIntersectingRingsError
implem
en
t
s
Check
Error
{
public
class
PolygonIntersectingRingsError
ext
en
d
s
Polygon
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
7043521697085991901L
;
private
final
Polygon
p
;
private
final
SerializablePair
<
LinearRing
,
LinearRing
>
intersectingRings
;
public
PolygonIntersectingRingsError
(
Polygon
p
,
SerializablePair
<
LinearRing
,
LinearRing
>
intersectingRings
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
intersectingRings
=
intersectingRings
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
SerializablePair
<
LinearRing
,
LinearRing
>
getIntersectingRings
()
{
return
intersectingRings
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
intersectingRings
.
getValue0
());
report
.
add
(
intersectingRings
.
getValue1
());
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"PolygonSelfIntError [p
="
+
p
+
", intersectingRings="
+
intersectingRings
+
"]"
;
return
"PolygonSelfIntError [p
olygon="
+
getPolygon
()
+
", intersectingRings="
+
intersectingRings
+
"]"
;
}
@Override
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonSameOrientationError.java
View file @
4921f946
...
...
@@ -18,7 +18,8 @@
*/
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
java.io.Serial
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
...
...
@@ -29,8 +30,6 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
java.io.Serial
;
/**
* If the interior rings have the same orientation as the exterior ring, this
* error is created.
...
...
@@ -38,46 +37,42 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
public
class
PolygonSameOrientationError
implem
en
t
s
Check
Error
{
public
class
PolygonSameOrientationError
ext
en
d
s
Polygon
Error
{
@Serial
private
static
final
long
serialVersionUID
=
-
6192337889977667459L
;
private
final
Polygon
p
;
private
final
LinearRing
innerRing
;
public
PolygonSameOrientationError
(
Polygon
p
,
LinearRing
inner
)
{
this
.
p
=
p
;
super
(
p
)
;
this
.
innerRing
=
inner
;
}
public
Polygon
getPolygon
()
{
return
p
;
}
public
LinearRing
getInnerRing
()
{
return
innerRing
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
p
);
super
.
report
(
report
);
report
.
add
(
innerRing
);
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
super
.
accept
(
errorVisitor
);
errorVisitor
.
visit
(
this
);
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
method
.
visit
(
this
,
l
);
return
super
.
accept
(
method
,
l
)
||
method
.
visit
(
this
,
l
);
}
@Override
public
String
toString
()
{
return
"SameOrientationError [p
="
+
p
+
", innerRing="
+
innerRing
+
"]"
;
return
"SameOrientationError [p
olygon="
+
getPolygon
()
+
", innerRing="
+
innerRing
+
"]"
;
}
@Override
...
...
Prev
1
2
Next
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