diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2a0c8e9d67eefaf2dddf8136119e98225b7f30ff..b8cbc073138102fbfdb05cdeacd50eaef1d24426 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [3.18.3] (2026-04-16)
+
+### Fixes
+
+- Fixed FragmentedSurface errors reporting roof BoundarySurfaces as ground BoundarySurfaces
+- Fixed degenerated triangles causing false-positive detection of AllPolygonsWrongOrientation errors
+- Fixed -db_location and -db_settings arguments not being parsed when starting the GUI from the CLI
+
## [3.18.2] (2026-02-24)
### Added
diff --git a/CityDoctorParent/CityDoctorCheckResult/pom.xml b/CityDoctorParent/CityDoctorCheckResult/pom.xml
index b9cc051922e5d04306d74aca1c484fecc9da43f4..a7be6eb3ebed479cd63c911fb69a5f7ddc9ab9cc 100644
--- a/CityDoctorParent/CityDoctorCheckResult/pom.xml
+++ b/CityDoctorParent/CityDoctorCheckResult/pom.xml
@@ -6,7 +6,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
CityDoctorCheckResult
diff --git a/CityDoctorParent/CityDoctorEdge/pom.xml b/CityDoctorParent/CityDoctorEdge/pom.xml
index 284ce8455b8a485a446a01ff75bc75db0d852878..bbc36d1045baf69b4a756fbe6c48251d8ca63078 100644
--- a/CityDoctorParent/CityDoctorEdge/pom.xml
+++ b/CityDoctorParent/CityDoctorEdge/pom.xml
@@ -6,7 +6,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
CityDoctorEdge
diff --git a/CityDoctorParent/CityDoctorModel/pom.xml b/CityDoctorParent/CityDoctorModel/pom.xml
index e107b5be16f1645cc5d38b84ca3257e608f36a87..5ec8a92a2726163a9b66027872f30f66b67f2262 100644
--- a/CityDoctorParent/CityDoctorModel/pom.xml
+++ b/CityDoctorParent/CityDoctorModel/pom.xml
@@ -6,7 +6,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
${project.version}-${git.commit.id.abbrev}
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java
index 5ad1d34bffb285a24575fb1eaf8c90c23ce9c002..731a8cb7fadba54c6c24e4189b30b5f8f3b12837 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/AbstractErrorVisitor.java
@@ -37,7 +37,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.check.error.XMLValidationError;
@@ -181,7 +181,7 @@ public abstract class AbstractErrorVisitor implements ErrorVisitor {
}
@Override
- public void visit(SurfaceUnfragmentedError err) {
+ public void visit(SurfaceFragmentedError err) {
}
@Override
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 82c9a5f8c12f9a6f3f3a282523b023c231c3a48d..8dc960cdc9a55b6da75e6c8e028703722e662111 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
@@ -55,7 +55,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.check.error.XMLValidationError;
@@ -135,7 +135,7 @@ public interface ErrorVisitor {
public void visit(SchematronError err);
- public void visit(SurfaceUnfragmentedError err);
+ public void visit(SurfaceFragmentedError err);
public void visit(DegeneratedRingError 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 0fe22b7de1b5c2f412b6ec8b05d9a46063095662..8354c05892b4d4a07945a6210960ec45a9451b33 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
@@ -48,7 +48,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.check.error.XMLValidationError;
@@ -189,7 +189,7 @@ public interface HealingMethod {
return false;
}
- default boolean visit(SurfaceUnfragmentedError err, ModificationListener l) {
+ default boolean visit(SurfaceFragmentedError err, ModificationListener l) {
return false;
}
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java
index 75e7903506063efb15d21dcd23722596d7d61020..fc6e826523c79db5923df87a663a3ebed55fe35a 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/QualityAdeErrorVisitor.java
@@ -55,7 +55,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.check.error.XMLValidationError;
@@ -367,7 +367,7 @@ public class QualityAdeErrorVisitor extends AbstractErrorVisitor {
}
@Override
- public void visit(SurfaceUnfragmentedError err) {
+ public void visit(SurfaceFragmentedError err) {
// not translated
}
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java
index d9e4ff53ec791e2d8e39984504e8a2118a1e4601..8fda9ebcd35196ef44cf8b0baa2170e0c7c2a77e 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java
@@ -63,7 +63,7 @@ public class Requirement implements Serializable {
public static final Requirement R_GE_R_NULL_AREA = new Requirement("R_GE_R_NULL_AREA", RequirementType.GEOMETRY);
public static final Requirement R_SE_BS_GROUND_UNFRAGMENTED = new Requirement("R_SE_BS_GROUND_UNFRAGMENTED", RequirementType.SEMANTIC);
- public static final Requirement R_SE_BS_ROOF_UNFRAGMENTED = new Requirement("R_SE_BS_GROUND_UNFRAGMENTED", RequirementType.SEMANTIC);
+ public static final Requirement R_SE_BS_ROOF_UNFRAGMENTED = new Requirement("R_SE_BS_ROOF_UNFRAGMENTED", RequirementType.SEMANTIC);
public static final Requirement R_SE_BS_IS_CEILING = new Requirement("R_SE_BS_IS_CEILING", RequirementType.SEMANTIC);
public static final Requirement R_SE_BS_IS_FLOOR = new Requirement("R_SE_BS_IS_FLOOR", RequirementType.SEMANTIC);
public static final Requirement R_SE_BS_IS_WALL = new Requirement("R_SE_BS_IS_WALL", RequirementType.SEMANTIC);
@@ -83,6 +83,7 @@ public class Requirement implements Serializable {
defaultParameters.add(new DefaultParameter(UPPER_ANGLE_NAME, "135", Unit.DEGREE));
R_SE_BS_IS_WALL.parameters = Collections.unmodifiableList(defaultParameters);
+ defaultParameters = new ArrayList<>();
defaultParameters.add(new DefaultParameter(MAX_ANGLE_DEVIATION, "1", Unit.DEGREE));
R_SE_BS_ROOF_UNFRAGMENTED.parameters = Collections.unmodifiableList(defaultParameters);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceUnfragmentedError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceFragmentedError.java
similarity index 94%
rename from CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceUnfragmentedError.java
rename to CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceFragmentedError.java
index 9236bf0daf4facc6cf7e1d46fc6be6984fffc269..8baa20db11ad192c4b0a8db39aabf8acdca87b1f 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceUnfragmentedError.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/SurfaceFragmentedError.java
@@ -36,7 +36,7 @@ import java.io.Serial;
* @author Matthias Betz
*
*/
-public class SurfaceUnfragmentedError implements CheckError {
+public class SurfaceFragmentedError implements CheckError {
@Serial
private static final long serialVersionUID = 3146243879393474196L;
@@ -44,7 +44,7 @@ public class SurfaceUnfragmentedError implements CheckError {
private final BoundarySurface bs;
private final double angleDeviation;
- public SurfaceUnfragmentedError(BoundarySurface bs, double angleDerivation) {
+ public SurfaceFragmentedError(BoundarySurface bs, double angleDerivation) {
this.bs = bs;
this.angleDeviation = angleDerivation;
}
diff --git a/CityDoctorParent/CityDoctorValidation/pom.xml b/CityDoctorParent/CityDoctorValidation/pom.xml
index f52a83cb61cd0d775bc71648142946b5c3b462db..4ef17f97861fe8f6506547a95f89303e2de96433 100644
--- a/CityDoctorParent/CityDoctorValidation/pom.xml
+++ b/CityDoctorParent/CityDoctorValidation/pom.xml
@@ -4,7 +4,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
CityDoctorValidation
CityDoctorValidation
diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidation.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidation.java
index c96294b60becb86c1e48346faa559798ba633601..d02613c594a2c35d8c1f27897ad8c384e86f1475 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidation.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidation.java
@@ -96,7 +96,7 @@ public class CityDoctorValidation {
return outputFile;
}
- private static void lookForDbConfigFileParameter(ArgumentParser argParser) {
+ public static void lookForDbConfigFileParameter(ArgumentParser argParser) {
if (!argParser.containsOption("db_config")) {
return;
}
@@ -108,7 +108,7 @@ public class CityDoctorValidation {
}
}
- private static void lookForDbLocationParameter(ArgumentParser argParser) {
+ public static void lookForDbLocationParameter(ArgumentParser argParser) {
if (!argParser.containsOption("db_location")) {
return;
}
diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/AllPolygonsWrongOrientationCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/AllPolygonsWrongOrientationCheck.java
index 277026e8e0e6b945301be3c48a1a0ed451e0cacd..4e7c705cf15049ccffbe16412dd3ddc70bc36db5 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/AllPolygonsWrongOrientationCheck.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/AllPolygonsWrongOrientationCheck.java
@@ -118,13 +118,15 @@ public class AllPolygonsWrongOrientationCheck extends Check {
// find the centroid of a triangle
Vector3d centroid = t.getCentroid();
// create a point outside of the geometry
- Vector3d outsidePoint = bbox[0].minus(Vector3d.X, 5).minus(Vector3d.Y, 5).minus(Vector3d.Z, 5);
+ Vector3d outsideDif1 = new Vector3d(5, 5, 5);
+ Vector3d outsidePoint = bbox[0].minus(outsideDif1);
// create a second point outside of the geometry
// the check can fail if the building is exactly oriented so that the ray is
// parallel to a side of the building
// in order to avoid this we check two rays, if one of those says it is oriented
// correctly it is oriented correctly
- Vector3d secondOutsidePoint = bbox[0].minus(Vector3d.X, 5).minus(Vector3d.Y, 10).minus(Vector3d.Z, 5);
+ Vector3d outsideDif2 = new Vector3d(7, 10, 5);
+ Vector3d secondOutsidePoint = bbox[0].minus(outsideDif2);
return checkIfGeometryIsWrongOriented(tessPolygons, centroid, outsidePoint)
|| checkIfGeometryIsWrongOriented(tessPolygons, centroid, secondOutsidePoint);
}
@@ -164,8 +166,8 @@ public class AllPolygonsWrongOrientationCheck extends Check {
}
private Triangle3d findSuitableTriangle(TesselatedPolygon p1) {
- Triangle3d t = p1.getTriangles().get(0);
- double maxArea = t.getArea();
+ Triangle3d t = null;
+ double maxArea = Double.NEGATIVE_INFINITY;
for (Triangle3d tri : p1.getTriangles()) {
double area = tri.getArea();
if (area > maxArea) {
@@ -173,6 +175,9 @@ public class AllPolygonsWrongOrientationCheck extends Check {
t = tri;
}
}
+ if (t == null) {
+ throw new IllegalStateException("No suitable triangle found");
+ }
return t;
}
diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/semantics/RoofSurfaceUnfragmentedCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/semantics/RoofSurfaceUnfragmentedCheck.java
index 2de941fa5363d0a0dbef3c3cdd5a036773e27e94..e5104001648cbce524f3cd400b35cd96e72cae30 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/semantics/RoofSurfaceUnfragmentedCheck.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/semantics/RoofSurfaceUnfragmentedCheck.java
@@ -29,6 +29,7 @@ import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.RequirementType;
+import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.checks.util.UnfragmentedCheck;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
@@ -80,6 +81,10 @@ public class RoofSurfaceUnfragmentedCheck extends Check {
}
// only use lod1 and lod2 polygons
CheckResult cr = UnfragmentedCheck.checkForFragmentedBoundarySurfaces(this, bs, maxAngleDeviation);
+ if (cr.getResultStatus() == ResultStatus.OK) {
+ // check if neighboring roof surfaces have the same average normal
+ // they should be merged
+ }
bs.addCheckResult(cr);
}
diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/UnfragmentedCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/UnfragmentedCheck.java
index 81a920216c176de8c9813082bc7ec7688bf73b87..1901645d791bb0f994de03f25620fe5fb2b62648 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/UnfragmentedCheck.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/UnfragmentedCheck.java
@@ -24,7 +24,7 @@ import java.util.List;
import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
-import de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError;
+import de.hft.stuttgart.citydoctor2.check.error.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
@@ -75,7 +75,7 @@ public class UnfragmentedCheck {
double dot = averageNormal.dot(n);
double acos = Math.acos(dot);
if (acos > delta) {
- SurfaceUnfragmentedError err = new SurfaceUnfragmentedError(bs, acos);
+ SurfaceFragmentedError err = new SurfaceFragmentedError(bs, acos);
return new CheckResult(c, ResultStatus.ERROR, err);
}
}
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/pom.xml b/CityDoctorParent/Extensions/CityDoctorGUI/pom.xml
index 233c78343e5432c95d2300163e0b2cf23c99be58..c7bfddab8c995ee1f1d3904d32fa0aa8eda5b98d 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/pom.xml
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/pom.xml
@@ -6,7 +6,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
../../pom.xml
CityDoctorGUI
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalErrorVisitor.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalErrorVisitor.java
index 0bfb5d97799e22285078364259bb3b0c395644fb..939a84fc3c899a85de2aa836083ccf1df867be7c 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalErrorVisitor.java
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalErrorVisitor.java
@@ -39,7 +39,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.check.error.XMLValidationError;
@@ -186,7 +186,7 @@ public class GlobalErrorVisitor implements ErrorVisitor {
}
@Override
- public void visit(SurfaceUnfragmentedError err) {
+ public void visit(SurfaceFragmentedError err) {
}
@Override
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java
index b86814a3c3f9fb877e435f651726dbcb551c5e2c..8412762c26ea8bfe6bba4cdd7b5a79e39279223b 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java
@@ -41,7 +41,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
@@ -243,7 +243,7 @@ public class ListErrorVisitor implements ErrorVisitor {
}
@Override
- public void visit(SurfaceUnfragmentedError err) {
+ public void visit(SurfaceFragmentedError err) {
// nothing to display
}
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java
index 736cdafd5333862a869f392344d01220b4469892..5370677b6143ac5ff3c8a07b140950077325fbb4 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java
@@ -278,6 +278,8 @@ public class MainWindow extends Application {
System.exit(4);
}
}
+ CityDoctorValidation.lookForDbConfigFileParameter(argParser);
+ CityDoctorValidation.lookForDbLocationParameter(argParser);
Application.launch(args);
}
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java
index 1f23d576ca485543ec11c412f20b077264fc8e8b..c79b0ec5f6e1cde306b2ac9d8457cbee5062e6f6 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java
@@ -36,7 +36,7 @@ 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.SurfaceFragmentedError;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError;
import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon;
@@ -396,7 +396,7 @@ public class ErrorItemVisitor extends AbstractErrorVisitor {
}
@Override
- public void visit(SurfaceUnfragmentedError err) {
+ public void visit(SurfaceFragmentedError err) {
TextNode textNode = new TextNode(
Localization.getText("ErrorItemVisitor.deviation") + ": " + err.getAngleDeviation());
TreeItem textItem = new TreeItem<>(textNode);
diff --git a/CityDoctorParent/Extensions/CityDoctorHealer/pom.xml b/CityDoctorParent/Extensions/CityDoctorHealer/pom.xml
index ee969799a96ee5d5da1bef8c95b367b8011e3052..7d1545935d6c936949cca082bd4151a831a6feb7 100644
--- a/CityDoctorParent/Extensions/CityDoctorHealer/pom.xml
+++ b/CityDoctorParent/Extensions/CityDoctorHealer/pom.xml
@@ -6,7 +6,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
../../pom.xml
CityDoctorHealer
diff --git a/CityDoctorParent/Extensions/CityDoctorHealerGUI/pom.xml b/CityDoctorParent/Extensions/CityDoctorHealerGUI/pom.xml
index 04a0807e378bcfe911e641c4befb01fcbeee7fca..eb01d734f8d5905685347052c17927cd93dd0081 100644
--- a/CityDoctorParent/Extensions/CityDoctorHealerGUI/pom.xml
+++ b/CityDoctorParent/Extensions/CityDoctorHealerGUI/pom.xml
@@ -7,7 +7,7 @@
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
../../pom.xml
CityDoctorHealerGUI
diff --git a/CityDoctorParent/pom.xml b/CityDoctorParent/pom.xml
index 2b4bd20cb5d07870ee070e64f254a0f120770790..24549983e3dea94dd13b0e3ec7a9ffcde87f1921 100644
--- a/CityDoctorParent/pom.xml
+++ b/CityDoctorParent/pom.xml
@@ -5,7 +5,7 @@
4.0.0
de.hft.stuttgart
CityDoctorParent
- 3.18.2
+ 3.18.3
pom
CityDoctorParent