Commit ad2e1a75 authored by Riegel's avatar Riegel
Browse files

Merge branch 'refs/heads/dev' into dev_embedded_geodb

# Conflicts:
#	CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericAttribute.java
parents aa17c02e 9c97175d
...@@ -42,6 +42,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement; ...@@ -42,6 +42,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon; import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
public class HealMissingSolid implements HealingMethod { public class HealMissingSolid implements HealingMethod {
...@@ -116,7 +117,7 @@ public class HealMissingSolid implements HealingMethod { ...@@ -116,7 +117,7 @@ public class HealMissingSolid implements HealingMethod {
} }
private boolean createSolidInFeature(Lod lod, AbstractBuilding building) { private boolean createSolidInFeature(Lod lod, AbstractBuilding building) {
Geometry geom = new Geometry(GeometryType.SOLID, lod); Geometry geom = new Geometry(GeometryType.SOLID, lod, Orientation.OUTWARD);
List<Polygon> polygons = collectPolygons(building, lod, geom); List<Polygon> polygons = collectPolygons(building, lod, geom);
for (Polygon p : polygons) { for (Polygon p : polygons) {
geom.addPolygon(p); geom.addPolygon(p);
......
...@@ -19,6 +19,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry; ...@@ -19,6 +19,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon; import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.math.Vector3d; import de.hft.stuttgart.citydoctor2.math.Vector3d;
public class HealPolygonWithoutSurface implements HealingMethod { public class HealPolygonWithoutSurface implements HealingMethod {
...@@ -60,7 +61,7 @@ public class HealPolygonWithoutSurface implements HealingMethod { ...@@ -60,7 +61,7 @@ public class HealPolygonWithoutSurface implements HealingMethod {
Geometry parentGeometry = cp.getParent(); Geometry parentGeometry = cp.getParent();
parentGeometry.getPolygons().remove(cp); parentGeometry.getPolygons().remove(cp);
ab.addBoundarySurface(bs); ab.addBoundarySurface(bs);
Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, parentGeometry.getLod()); Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, parentGeometry.getLod(), Orientation.OUTWARD);
bs.addGeometry(geom); bs.addGeometry(geom);
geom.addPolygon(cp); geom.addPolygon(cp);
parentGeometry.addPolygon(new LinkedPolygon(cp, parentGeometry)); parentGeometry.addPolygon(new LinkedPolygon(cp, parentGeometry));
......
...@@ -2,16 +2,14 @@ package de.hft.stuttgart.citydoctor2.healing; ...@@ -2,16 +2,14 @@ package de.hft.stuttgart.citydoctor2.healing;
import java.io.IOException; import java.io.IOException;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.Building;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.Checker; import de.hft.stuttgart.citydoctor2.check.Checker;
import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration;
import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.healer.Healer; import de.hft.stuttgart.citydoctor2.healer.Healer;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
......
...@@ -55,6 +55,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon; ...@@ -55,6 +55,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException; import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException;
import de.hft.stuttgart.citydoctor2.healer.Healer; import de.hft.stuttgart.citydoctor2.healer.Healer;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
...@@ -75,7 +76,7 @@ public class HealMissingSolidTest { ...@@ -75,7 +76,7 @@ public class HealMissingSolidTest {
model.addBuilding(b); model.addBuilding(b);
b.setGmlObject(new org.citygml4j.core.model.building.Building()); b.setGmlObject(new org.citygml4j.core.model.building.Building());
Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2); Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
ConcretePolygon p1 = new ConcretePolygon(); ConcretePolygon p1 = new ConcretePolygon();
LinearRing ext1 = createTestRing(); LinearRing ext1 = createTestRing();
...@@ -84,7 +85,7 @@ public class HealMissingSolidTest { ...@@ -84,7 +85,7 @@ public class HealMissingSolidTest {
BoundarySurface bs1 = new BoundarySurface(mock(AbstractThematicSurface.class)); BoundarySurface bs1 = new BoundarySurface(mock(AbstractThematicSurface.class));
b.addBoundarySurface(bs1); b.addBoundarySurface(bs1);
Geometry geom2 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2); Geometry geom2 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2, Orientation.OUTWARD);
bs1.addGeometry(geom2); bs1.addGeometry(geom2);
ConcretePolygon p2 = new ConcretePolygon(); ConcretePolygon p2 = new ConcretePolygon();
LinearRing ext2 = createTestRing(); LinearRing ext2 = createTestRing();
...@@ -95,7 +96,7 @@ public class HealMissingSolidTest { ...@@ -95,7 +96,7 @@ public class HealMissingSolidTest {
Installation bi = new Installation(); Installation bi = new Installation();
b.addBuildingInstallation(bi); b.addBuildingInstallation(bi);
Geometry geom3 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2); Geometry geom3 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2, Orientation.OUTWARD);
bi.addGeometry(geom3); bi.addGeometry(geom3);
ConcretePolygon p3 = new ConcretePolygon(); ConcretePolygon p3 = new ConcretePolygon();
LinearRing ext3 = createTestRing(); LinearRing ext3 = createTestRing();
...@@ -104,7 +105,7 @@ public class HealMissingSolidTest { ...@@ -104,7 +105,7 @@ public class HealMissingSolidTest {
BoundarySurface bs2 = new BoundarySurface(mock(AbstractThematicSurface.class)); BoundarySurface bs2 = new BoundarySurface(mock(AbstractThematicSurface.class));
bi.addBoundarySurface(bs2); bi.addBoundarySurface(bs2);
Geometry geom4 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2); Geometry geom4 = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD2, Orientation.OUTWARD);
bs2.addGeometry(geom4); bs2.addGeometry(geom4);
ConcretePolygon p4 = new ConcretePolygon(); ConcretePolygon p4 = new ConcretePolygon();
LinearRing ext4 = createTestRing(); LinearRing ext4 = createTestRing();
......
...@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; ...@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.healer.Healer; import de.hft.stuttgart.citydoctor2.healer.Healer;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
...@@ -57,7 +58,7 @@ public class HealPlanarPolygonErrorTest { ...@@ -57,7 +58,7 @@ public class HealPlanarPolygonErrorTest {
public void testNonplanarPolygon() { public void testNonplanarPolygon() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
...@@ -162,7 +163,7 @@ public class HealPlanarPolygonErrorTest { ...@@ -162,7 +163,7 @@ public class HealPlanarPolygonErrorTest {
public void testNonplanarPolygon_Split() { public void testNonplanarPolygon_Split() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
...@@ -276,7 +277,7 @@ public class HealPlanarPolygonErrorTest { ...@@ -276,7 +277,7 @@ public class HealPlanarPolygonErrorTest {
public void testNonplanarPolygon_Split2() { public void testNonplanarPolygon_Split2() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
......
...@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; ...@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.healer.Healer; import de.hft.stuttgart.citydoctor2.healer.Healer;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
...@@ -35,7 +36,7 @@ public class HealRingSelfIntErrorTest { ...@@ -35,7 +36,7 @@ public class HealRingSelfIntErrorTest {
@Test @Test
public void testIntersectingEdges1() { public void testIntersectingEdges1() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1, Orientation.OUTWARD);
Polygon p = new ConcretePolygon(); Polygon p = new ConcretePolygon();
geom.addPolygon(p); geom.addPolygon(p);
...@@ -92,7 +93,7 @@ public class HealRingSelfIntErrorTest { ...@@ -92,7 +93,7 @@ public class HealRingSelfIntErrorTest {
@Test @Test
public void testDuplicatePoint1() { public void testDuplicatePoint1() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1, Orientation.OUTWARD);
Polygon p = new ConcretePolygon(); Polygon p = new ConcretePolygon();
geom.addPolygon(p); geom.addPolygon(p);
...@@ -137,7 +138,7 @@ public class HealRingSelfIntErrorTest { ...@@ -137,7 +138,7 @@ public class HealRingSelfIntErrorTest {
@Test @Test
public void testDuplicatePoint2() { public void testDuplicatePoint2() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD1, Orientation.OUTWARD);
Polygon p = new ConcretePolygon(); Polygon p = new ConcretePolygon();
geom.addPolygon(p); geom.addPolygon(p);
......
...@@ -29,6 +29,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; ...@@ -29,6 +29,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.healer.Healer; import de.hft.stuttgart.citydoctor2.healer.Healer;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
...@@ -42,7 +43,7 @@ public class HealSolidNotClosedErrorTest { ...@@ -42,7 +43,7 @@ public class HealSolidNotClosedErrorTest {
public void testVertexCloseToEdge() { public void testVertexCloseToEdge() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); //Angelika: als Test eingefügt Building b = new Building(); //Angelika: als Test eingefügt
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0); //Original Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0, Orientation.OUTWARD); //Original
// Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); //Angelika: Test // Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); //Angelika: Test
b.addGeometry(geom); //Angelika: als Test eingefügt b.addGeometry(geom); //Angelika: als Test eingefügt
...@@ -166,7 +167,7 @@ public class HealSolidNotClosedErrorTest { ...@@ -166,7 +167,7 @@ public class HealSolidNotClosedErrorTest {
public void testMissingPolygon() { public void testMissingPolygon() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
...@@ -255,7 +256,7 @@ public class HealSolidNotClosedErrorTest { ...@@ -255,7 +256,7 @@ public class HealSolidNotClosedErrorTest {
@Test @Test
public void test2MissingPolygons() { public void test2MissingPolygons() {
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
...@@ -345,7 +346,7 @@ public class HealSolidNotClosedErrorTest { ...@@ -345,7 +346,7 @@ public class HealSolidNotClosedErrorTest {
public void test2MissingPolygonsCpp() { public void test2MissingPolygonsCpp() {
CppInitializer.initCpp(); CppInitializer.initCpp();
Building b = new Building(); Building b = new Building();
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
b.addGeometry(geom); b.addGeometry(geom);
Vertex v0 = new Vertex(0, 0, 0); Vertex v0 = new Vertex(0, 0, 0);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>de.hft.stuttgart</groupId> <groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorParent</artifactId> <artifactId>CityDoctorParent</artifactId>
<version>3.17.2</version> <version>3.17.3</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<artifactId>CityDoctorHealerGUI</artifactId> <artifactId>CityDoctorHealerGUI</artifactId>
......
...@@ -30,6 +30,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon; ...@@ -30,6 +30,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinkedPolygon;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Opening; import de.hft.stuttgart.citydoctor2.datastructure.Opening;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.gui.AutoProWindow; import de.hft.stuttgart.citydoctor2.gui.AutoProWindow;
import de.hft.stuttgart.citydoctor2.gui.HighlightController; import de.hft.stuttgart.citydoctor2.gui.HighlightController;
import de.hft.stuttgart.citydoctor2.gui.ListErrorVisitor; import de.hft.stuttgart.citydoctor2.gui.ListErrorVisitor;
...@@ -614,7 +615,7 @@ public class HealerController { ...@@ -614,7 +615,7 @@ public class HealerController {
List<Polygon> newPolygons = availablePolygons.get(lod); List<Polygon> newPolygons = availablePolygons.get(lod);
if (newPolygons != null) { if (newPolygons != null) {
// found polygons to be added // found polygons to be added
Geometry newGeometry = new Geometry(GeometryType.SOLID, lod); Geometry newGeometry = new Geometry(GeometryType.SOLID, lod, Orientation.OUTWARD);
Set<Polygon> polygons = existingPolygons.get(lod); Set<Polygon> polygons = existingPolygons.get(lod);
if (polygons != null) { if (polygons != null) {
// add existing polygons // add existing polygons
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<parent> <parent>
<groupId>de.hft.stuttgart</groupId> <groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorParent</artifactId> <artifactId>CityDoctorParent</artifactId>
<version>3.17.2</version> <version>3.17.3</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<artifactId>CityDoctorHealerGenetic</artifactId> <artifactId>CityDoctorHealerGenetic</artifactId>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.hft.stuttgart</groupId> <groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorParent</artifactId> <artifactId>CityDoctorParent</artifactId>
<version>3.17.2</version> <version>3.17.3</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>CityDoctorParent</name> <name>CityDoctorParent</name>
<properties> <properties>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment