diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java index 231f629338ae7ffa0aadbd9ceb5435112849d7f9..840258e333f8bd09c1d72bd1e25eff657ba346fa 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorVisitor.java @@ -21,33 +21,32 @@ package de.hft.stuttgart.citydoctor2.check; import de.hft.stuttgart.citydoctor2.check.error.AllPolygonsWrongOrientationError; import de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError; import de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError; -import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError; -import de.hft.stuttgart.citydoctor2.check.error.DuplicatePointError; -import de.hft.stuttgart.citydoctor2.check.error.EdgeIntersectionError; -import de.hft.stuttgart.citydoctor2.check.error.HoleOutsideError; -import de.hft.stuttgart.citydoctor2.check.error.InteriorDisconnectedError; -import de.hft.stuttgart.citydoctor2.check.error.ManifoldEdgeError; 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.NormalDeviationError; +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.PointTouchesEdgeError; +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.PolygonWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; import de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError; -import de.hft.stuttgart.citydoctor2.check.error.RingSelfIntError; -import de.hft.stuttgart.citydoctor2.check.error.SameOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; import de.hft.stuttgart.citydoctor2.check.error.SchematronError; 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.TinyEdgeError; -import de.hft.stuttgart.citydoctor2.check.error.TooFewPointsError; import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError; import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError; @@ -60,9 +59,9 @@ import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError; */ public interface ErrorVisitor { - public void visit(HoleOutsideError err); + public void visit(PolygonHoleOutsideError err); - public void visit(ManifoldEdgeError err); + public void visit(NonManifoldEdgeError err); public void visit(MultipleConnectedComponentsError err); @@ -72,7 +71,7 @@ public interface ErrorVisitor { public void visit(PolygonWrongOrientationError err); - public void visit(SameOrientationError err); + public void visit(PolygonSameOrientationError err); public void visit(SolidNotClosedError err); @@ -84,17 +83,15 @@ public interface ErrorVisitor { public void visit(ConsecutivePointSameError err); - public void visit(RingSelfIntError err); - public void visit(AllPolygonsWrongOrientationError err); - public void visit(InteriorDisconnectedError err); + public void visit(PolygonInteriorDisconnectedError err); public void visit(NullAreaError err); - public void visit(TooFewPointsError err); + public void visit(RingTooFewPointsError err); - public void visit(NormalDeviationError err); + public void visit(NonPlanarPolygonNormalsDeviation err); public void visit(NonPlanarPolygonDistancePlaneError err); @@ -104,9 +101,9 @@ public interface ErrorVisitor { public void visit(TooFewPolygonsError err); - public void visit(DuplicatePointError err); + public void visit(RingDuplicatePointError err); - public void visit(EdgeIntersectionError err); + public void visit(RingEdgeIntersectionError err); public void visit(PointTouchesEdgeError err); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/HealingMethod.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/HealingMethod.java index d4695bef4410049b3799e5f35dcc907498566ed4..26abbbf7a7de5b1ff8893d5bee23a36c4795375f 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/HealingMethod.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/HealingMethod.java @@ -21,33 +21,32 @@ package de.hft.stuttgart.citydoctor2.check; import de.hft.stuttgart.citydoctor2.check.error.AllPolygonsWrongOrientationError; import de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError; import de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError; -import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError; -import de.hft.stuttgart.citydoctor2.check.error.DuplicatePointError; -import de.hft.stuttgart.citydoctor2.check.error.EdgeIntersectionError; -import de.hft.stuttgart.citydoctor2.check.error.HoleOutsideError; -import de.hft.stuttgart.citydoctor2.check.error.InteriorDisconnectedError; -import de.hft.stuttgart.citydoctor2.check.error.ManifoldEdgeError; 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.NormalDeviationError; +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.PointTouchesEdgeError; +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.PolygonWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; import de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError; -import de.hft.stuttgart.citydoctor2.check.error.RingSelfIntError; -import de.hft.stuttgart.citydoctor2.check.error.SameOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; import de.hft.stuttgart.citydoctor2.check.error.SchematronError; 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.TinyEdgeError; -import de.hft.stuttgart.citydoctor2.check.error.TooFewPointsError; import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError; import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError; @@ -69,11 +68,11 @@ public interface HealingMethod { return false; } - default boolean visit(EdgeIntersectionError edgeIntersectionError, ModificationListener l) { + default boolean visit(RingEdgeIntersectionError edgeIntersectionError, ModificationListener l) { return false; } - default boolean visit(DuplicatePointError duplicatePointError, ModificationListener l) { + default boolean visit(RingDuplicatePointError duplicatePointError, ModificationListener l) { return false; } @@ -93,15 +92,15 @@ public interface HealingMethod { return false; } - default boolean visit(HoleOutsideError err, ModificationListener l) { + default boolean visit(PolygonHoleOutsideError err, ModificationListener l) { return false; } - default boolean visit(InteriorDisconnectedError err, ModificationListener l) { + default boolean visit(PolygonInteriorDisconnectedError err, ModificationListener l) { return false; } - default boolean visit(ManifoldEdgeError err, ModificationListener l) { + default boolean visit(NonManifoldEdgeError err, ModificationListener l) { return false; } @@ -117,7 +116,7 @@ public interface HealingMethod { return false; } - default boolean visit(NormalDeviationError err, ModificationListener l) { + default boolean visit(NonPlanarPolygonNormalsDeviation err, ModificationListener l) { return false; } @@ -137,11 +136,7 @@ public interface HealingMethod { return false; } - default boolean visit(RingSelfIntError err, ModificationListener l) { - return false; - } - - default boolean visit(SameOrientationError err, ModificationListener l) { + default boolean visit(PolygonSameOrientationError err, ModificationListener l) { return false; } @@ -153,7 +148,7 @@ public interface HealingMethod { return false; } - default boolean visit(TooFewPointsError err, ModificationListener l) { + default boolean visit(RingTooFewPointsError err, ModificationListener l) { return false; } diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/ManifoldEdgeError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonManifoldEdgeError.java similarity index 95% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/ManifoldEdgeError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonManifoldEdgeError.java index 9ce08f3223c3708120efc3fcb30a49f011d97273..39645d2150fb1b4370dec0991145a7c78a78b684 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/ManifoldEdgeError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonManifoldEdgeError.java @@ -36,14 +36,14 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry; * @author Matthias Betz * */ -public class ManifoldEdgeError extends CheckError { +public class NonManifoldEdgeError extends CheckError { private static final long serialVersionUID = -6742948557014332402L; private List<Edge> edges; private Geometry geom; - public ManifoldEdgeError(Geometry geom, List<Edge> edges) { + public NonManifoldEdgeError(Geometry geom, List<Edge> edges) { super(ErrorId.GE_S_NON_MANIFOLD_EDGE, ErrorType.ERROR, geom); this.edges = edges; this.geom = geom; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NormalDeviationError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonPlanarPolygonNormalsDeviation.java similarity index 94% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NormalDeviationError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonPlanarPolygonNormalsDeviation.java index 3077111bd72c43a908e58594c93d81fd54459d00..30e036b33ee6a794000a8555715ae50b10f13e1b 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NormalDeviationError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/NonPlanarPolygonNormalsDeviation.java @@ -34,14 +34,14 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon; * @author Matthias Betz * */ -public class NormalDeviationError extends CheckError { +public class NonPlanarPolygonNormalsDeviation extends CheckError { private static final long serialVersionUID = 69073161885265794L; private Polygon p; private double deviation; - public NormalDeviationError(Polygon p, double deviation) { + public NonPlanarPolygonNormalsDeviation(Polygon p, double deviation) { super(ErrorId.GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION, ErrorType.ERROR, p); this.p = p; this.deviation = deviation; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/HoleOutsideError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonHoleOutsideError.java similarity index 94% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/HoleOutsideError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonHoleOutsideError.java index bf53dd74e6356368e30f27fe66f8c820290b7357..f46064b7480756106747e1b6b87b9f20f252da44 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/HoleOutsideError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonHoleOutsideError.java @@ -37,14 +37,14 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon; * @author Matthias Betz * */ -public class HoleOutsideError extends CheckError { +public class PolygonHoleOutsideError extends CheckError { private static final long serialVersionUID = -4522153084655775231L; private List<LinearRing> holesOutside; private Polygon p; - public HoleOutsideError(Polygon p, List<LinearRing> holesOutside) { + public PolygonHoleOutsideError(Polygon p, List<LinearRing> holesOutside) { super(ErrorId.GE_P_HOLE_OUTSIDE, ErrorType.ERROR, p); this.p = p; this.holesOutside = holesOutside; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorDisconnectedError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonInteriorDisconnectedError.java similarity index 94% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorDisconnectedError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonInteriorDisconnectedError.java index c69567f0f69eaf6c3d791e0878950b13536c4454..f4f786890db85fc8b7609916558485ed2a3e833e 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorDisconnectedError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonInteriorDisconnectedError.java @@ -37,14 +37,14 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon; * @author Matthias Betz * */ -public class InteriorDisconnectedError extends CheckError { +public class PolygonInteriorDisconnectedError extends CheckError { private static final long serialVersionUID = 511849016699842395L; private Polygon p; private List<LinearRing> connectedRings; - public InteriorDisconnectedError(Polygon p, List<LinearRing> connectedRings) { + public PolygonInteriorDisconnectedError(Polygon p, List<LinearRing> connectedRings) { super(ErrorId.GE_P_INTERIOR_DISCONNECTED, ErrorType.ERROR, p); this.p = p; this.connectedRings = connectedRings; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SameOrientationError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonSameOrientationError.java similarity index 94% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SameOrientationError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonSameOrientationError.java index 0e98e7c7d4ce19bdf435d7d2ece2705b0b4df139..4e06e8a8ca53df3707e641793852a829061ea57f 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SameOrientationError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/PolygonSameOrientationError.java @@ -35,14 +35,14 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon; * @author Matthias Betz * */ -public class SameOrientationError extends CheckError { +public class PolygonSameOrientationError extends CheckError { private static final long serialVersionUID = -6192337889977667459L; private Polygon p; private LinearRing innerRing; - public SameOrientationError(Polygon p, LinearRing inner) { + public PolygonSameOrientationError(Polygon p, LinearRing inner) { super(ErrorId.GE_P_ORIENTATION_RINGS_SAME, ErrorType.ERROR, p); this.p = p; this.innerRing = inner; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/DuplicatePointError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingDuplicatePointError.java similarity index 95% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/DuplicatePointError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingDuplicatePointError.java index 75bcc5e6780728a777a2d0772ab03c67790c4c6b..d710e489eba466c3ad644768ab0471415533a146 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/DuplicatePointError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingDuplicatePointError.java @@ -35,7 +35,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Vertex; * @author Matthias Betz * */ -public class DuplicatePointError extends CheckError { +public class RingDuplicatePointError extends CheckError { private static final long serialVersionUID = 7208982075173209953L; @@ -43,7 +43,7 @@ public class DuplicatePointError extends CheckError { private Vertex v1; private Vertex v2; - public DuplicatePointError(LinearRing r, Vertex v1, Vertex v2) { + public RingDuplicatePointError(LinearRing r, Vertex v1, Vertex v2) { super(ErrorId.GE_R_SELF_INTERSECTION, ErrorType.ERROR, r); this.r = r; this.v1 = v1; diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/EdgeIntersectionError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingEdgeIntersectionError.java similarity index 94% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/EdgeIntersectionError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingEdgeIntersectionError.java index 50a86929d4712c51265598e9f4e5239873fd336b..0992c3516d235b4a903604b2b89680f0c69decec 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/EdgeIntersectionError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingEdgeIntersectionError.java @@ -36,7 +36,7 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d; * @author Matthias Betz * */ -public class EdgeIntersectionError extends CheckError { +public class RingEdgeIntersectionError extends CheckError { private static final long serialVersionUID = 4923311259469198172L; @@ -45,7 +45,7 @@ public class EdgeIntersectionError extends CheckError { private Vector3d intersection; private LinearRing lr; - public EdgeIntersectionError(LinearRing lr, Edge e1, Edge e2, Vector3d intersection) { + public RingEdgeIntersectionError(LinearRing lr, Edge e1, Edge e2, Vector3d intersection) { super(ErrorId.GE_R_SELF_INTERSECTION, ErrorType.ERROR, lr); if (e1 == null || e2 == null || lr == null || intersection == null) { throw new IllegalArgumentException("Parameters may not be null"); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingSelfIntError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingSelfIntError.java deleted file mode 100644 index 4a23ade745b347fb88c9a50366c3f52c674481ce..0000000000000000000000000000000000000000 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingSelfIntError.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart - * - * This file is part of CityDoctor2. - * - * CityDoctor2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * CityDoctor2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>. - */ -package de.hft.stuttgart.citydoctor2.check.error; - -import java.util.Set; - -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; -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.Edge; -import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; - -/** - * If two edges of the same linear ring are intersecting with each other, this - * error is created. - * - * @author Matthias Betz - * - */ -public class RingSelfIntError extends CheckError { - - private static final long serialVersionUID = 8007952264635395514L; - - private LinearRing lr; - private Set<Edge> edges; - - public RingSelfIntError(LinearRing lr, Set<Edge> intersectingEdges) { - super(ErrorId.GE_R_SELF_INTERSECTION, ErrorType.ERROR, lr); - this.lr = lr; - edges = intersectingEdges; - } - - public LinearRing getRing() { - return lr; - } - - public Set<Edge> getEdges() { - return edges; - } - - @Override - public void report(ErrorReport report) { - report.add(lr); - } - - @Override - public void accept(ErrorVisitor errorVisitor) { - errorVisitor.visit(this); - } - - @Override - public boolean accept(HealingMethod method, ModificationListener l) { - return method.visit(this, l); - } - - @Override - public String toString() { - return "RingSelfIntError [lr=" + lr + ", edges=" + edges + "]"; - } -} diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/TooFewPointsError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingTooFewPointsError.java similarity index 95% rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/TooFewPointsError.java rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingTooFewPointsError.java index 02c5fc822ff1c0a7ef09000257f90d49ef17fc96..41df5974e8d0c281b590b79e3e34252dc8dc07e2 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/TooFewPointsError.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/RingTooFewPointsError.java @@ -33,13 +33,13 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; * @author Matthias Betz * */ -public class TooFewPointsError extends CheckError { +public class RingTooFewPointsError extends CheckError { private static final long serialVersionUID = 7207518573842743261L; private LinearRing lr; - public TooFewPointsError(LinearRing lr) { + public RingTooFewPointsError(LinearRing lr) { super(ErrorId.GE_R_TOO_FEW_POINTS, ErrorType.ERROR, lr); this.lr = lr; } diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/DuplicatePointsCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/DuplicatePointsCheck.java index 0a3aee3d712189d1426e172bf28598ba463c7124..7836e9ccb26572964797936a15febbf68743bf54 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/DuplicatePointsCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/DuplicatePointsCheck.java @@ -31,7 +31,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError; -import de.hft.stuttgart.citydoctor2.check.error.DuplicatePointError; +import de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; @@ -116,7 +116,7 @@ public class DuplicatePointsCheck extends Check { Vertex point2 = pointList.get(j); if (point1.equalsWithEpsilon(point2, epsilon)) { // non consecutive points same - CheckError err = new DuplicatePointError(lr, point1, point2); + CheckError err = new RingDuplicatePointError(lr, point1, point2); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); lr.addCheckResult(cr); return; diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/HoleOutsideCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/HoleOutsideCheck.java index 705af0e63170e099a90821417f4afbefff2c22c2..e00b6ef5aec750beb2519eb101991bc4241de061 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/HoleOutsideCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/HoleOutsideCheck.java @@ -29,7 +29,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.HoleOutsideError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonHoleOutsideError; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Vertex; @@ -79,7 +79,7 @@ public class HoleOutsideCheck extends Check { CheckResult cr = new CheckResult(this, ResultStatus.OK, null); p.addCheckResult(cr); } else { - CheckError err = new HoleOutsideError(p, holesOutside); + CheckError err = new PolygonHoleOutsideError(p, holesOutside); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); p.addCheckResult(cr); } diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorDisconnectedCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorDisconnectedCheck.java index c48ee49f8fb7d699654d5340bd5f8a63ce2dfef3..aaa0e14bdab53d34a7d0bb40e133efff3b1ab1fb 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorDisconnectedCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorDisconnectedCheck.java @@ -33,7 +33,7 @@ import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.DefaultParameter; import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.Unit; -import de.hft.stuttgart.citydoctor2.check.error.InteriorDisconnectedError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonInteriorDisconnectedError; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Vertex; @@ -112,7 +112,7 @@ public class InteriorDisconnectedCheck extends Check { // collect rings node.resetVisit(); List<LinearRing> connectedRings = node.getConnectedRings(); - CheckError err = new InteriorDisconnectedError(p, connectedRings); + CheckError err = new PolygonInteriorDisconnectedError(p, connectedRings); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); p.addCheckResult(cr); return; @@ -139,7 +139,7 @@ public class InteriorDisconnectedCheck extends Check { List<LinearRing> connectedRings = new ArrayList<>(); connectedRings.add(n1.getValue()); connectedRings.add(n2.getValue()); - CheckError err = new InteriorDisconnectedError(p, connectedRings); + CheckError err = new PolygonInteriorDisconnectedError(p, connectedRings); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); p.addCheckResult(cr); return true; diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NonManifoldEdgeCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NonManifoldEdgeCheck.java index 1dd07ca93733595f493cac2e3680a99aa8b46df3..fdaea689992eb1abb4d5daadba3c3a476992da3d 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NonManifoldEdgeCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NonManifoldEdgeCheck.java @@ -29,7 +29,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.ManifoldEdgeError; +import de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError; import de.hft.stuttgart.citydoctor2.datastructure.Edge; import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; @@ -85,7 +85,7 @@ public class NonManifoldEdgeCheck extends Check { if (errorEdges.isEmpty()) { cr = new CheckResult(this, ResultStatus.OK, null); } else { - CheckError err = new ManifoldEdgeError(g, errorEdges); + CheckError err = new NonManifoldEdgeError(g, errorEdges); cr = new CheckResult(this, ResultStatus.ERROR, err); } g.addCheckResult(cr); diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NumPointsCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NumPointsCheck.java index efa210137151b4c067f8a94741c340f7fe2c5f19..b894c21174a5dcfa93cf517a2809fdae03a636e0 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NumPointsCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NumPointsCheck.java @@ -31,7 +31,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.TooFewPointsError; +import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.Vertex; @@ -90,7 +90,7 @@ public class NumPointsCheck extends Check { // 2 points or less = always error if (vertices.size() - numberOfContainingNeighbors < 3) { - CheckError err = new TooFewPointsError(lr); + CheckError err = new RingTooFewPointsError(lr); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); lr.addCheckResult(cr); return; diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PlanarCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PlanarCheck.java index 64766fdc4404150669d10bbe80022fc0119d7bd3..3e0e2c7a9ae780597cb1d04a1f0a7c1111413291 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PlanarCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PlanarCheck.java @@ -34,7 +34,7 @@ import de.hft.stuttgart.citydoctor2.check.DefaultParameter; import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.Unit; import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError; -import de.hft.stuttgart.citydoctor2.check.error.NormalDeviationError; +import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonNormalsDeviation; import de.hft.stuttgart.citydoctor2.check.error.TinyEdgeError; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.Polygon; @@ -165,7 +165,7 @@ public class PlanarCheck extends Check { double deviation = normal.dot(averageNormal); double radiant = Math.acos(deviation); if (radiant > rad) { - CheckError err = new NormalDeviationError(p, radiant); + CheckError err = new NonPlanarPolygonNormalsDeviation(p, radiant); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); p.addCheckResult(cr); return; diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PolygonSameOrientationCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PolygonSameOrientationCheck.java index e17dde02da1d2a676efb9a5397f269de1d32e5ae..d5bc2066b85ac0e086cad1702d041e36d358f263 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PolygonSameOrientationCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/PolygonSameOrientationCheck.java @@ -29,7 +29,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.SameOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonSameOrientationError; import de.hft.stuttgart.citydoctor2.checks.util.Orientation; import de.hft.stuttgart.citydoctor2.checks.util.RingOrientationUtil; import de.hft.stuttgart.citydoctor2.datastructure.Polygon; @@ -71,7 +71,7 @@ public class PolygonSameOrientationCheck extends Check { Orientation extOrientation = RingOrientationUtil.calculateOrientation(poly2d.getExterior()); for (Ring2d inner : poly2d.getInteriorRings()) { if (RingOrientationUtil.calculateOrientation(inner) == extOrientation) { - CheckError err = new SameOrientationError(p, inner.getOriginal()); + CheckError err = new PolygonSameOrientationError(p, inner.getOriginal()); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); p.addCheckResult(cr); return; diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheck.java index 75f5d9c1bb0b7b2fe6cb8435372b82477027e270..f62c3cf61788ba5967726935cf341234c433db95 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheck.java @@ -30,7 +30,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.EdgeIntersectionError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; import de.hft.stuttgart.citydoctor2.check.error.PointTouchesEdgeError; import de.hft.stuttgart.citydoctor2.datastructure.Edge; import de.hft.stuttgart.citydoctor2.datastructure.Geometry; @@ -105,7 +105,7 @@ public class RingSelfIntCheck extends Check { DistanceResult dr = s1.getDistanceResult(s2); if (dr.getDistance() < epsilon) { // intersection - CheckError err = new EdgeIntersectionError(lr, e1, e2, dr.getPoint1()); + CheckError err = new RingEdgeIntersectionError(lr, e1, e2, dr.getPoint1()); CheckResult cr = new CheckResult(this, ResultStatus.ERROR, err); lr.addCheckResult(cr); return; diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java index dd154d2241dfcdf7df56a18cf2d9ffc5e6b5ed2d..cea59da469aec3bb341480126956b7b2b760e767 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.EdgeIntersectionError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon; import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; @@ -78,8 +78,8 @@ public class RingSelfIntCheckTest { check.check(lr); CheckResult cr = lr.getCheckResult(check); assertSame(ResultStatus.ERROR, cr.getResultStatus()); - assertTrue(cr.getError() instanceof EdgeIntersectionError); - EdgeIntersectionError err = (EdgeIntersectionError) cr.getError(); + assertTrue(cr.getError() instanceof RingEdgeIntersectionError); + RingEdgeIntersectionError err = (RingEdgeIntersectionError) cr.getError(); assertNotNull(err.getIntersection()); assertEquals(5d, err.getIntersection().getX(), 0.00001); assertEquals(5d, err.getIntersection().getY(), 0.00001);