Commit 87dba3fa authored by Riegel's avatar Riegel
Browse files

Merge branch 'dev' into 'master'

CityDoctor Version 3.17.3

See merge request !34
parents 0d2e9fd5 aa9c2a95
Pipeline #11660 passed with stage
in 1 minute and 26 seconds
...@@ -111,7 +111,6 @@ public class Citygml3GeometryMapper extends GeometryWalker { ...@@ -111,7 +111,6 @@ public class Citygml3GeometryMapper extends GeometryWalker {
conc.addInteriorRing(currentRing); conc.addInteriorRing(currentRing);
} }
collection.addPatchMember(conc); collection.addPatchMember(conc);
polygons.add(conc);
} }
private void parsePolygon(String id, AbstractRingProperty exterior, List<AbstractRingProperty> interior) { private void parsePolygon(String id, AbstractRingProperty exterior, List<AbstractRingProperty> interior) {
......
...@@ -107,7 +107,7 @@ public class SurfaceMapper extends ObjectWalker { ...@@ -107,7 +107,7 @@ public class SurfaceMapper extends ObjectWalker {
} }
private Geometry parseMultiSurface(MultiSurface ms, Lod lod) { private Geometry parseMultiSurface(MultiSurface ms, Lod lod) {
Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, lod); Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, lod, null);
Citygml3GeometryMapper geometryMapper = new Citygml3GeometryMapper(config, vertexMap); Citygml3GeometryMapper geometryMapper = new Citygml3GeometryMapper(config, vertexMap);
readSurfaceMember(geom, geometryMapper, ms.getSurfaceMember()); readSurfaceMember(geom, geometryMapper, ms.getSurfaceMember());
return geom; return geom;
......
...@@ -32,4 +32,6 @@ public interface CityGmlConsumer { ...@@ -32,4 +32,6 @@ public interface CityGmlConsumer {
} }
// public void endOfFile();
} }
...@@ -18,26 +18,42 @@ ...@@ -18,26 +18,42 @@
*/ */
package de.hft.stuttgart.citydoctor2.parser; package de.hft.stuttgart.citydoctor2.parser;
import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import java.io.BufferedInputStream;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject; import java.io.ByteArrayInputStream;
import de.hft.stuttgart.citydoctor2.mapper.citygml3.Citygml3FeatureMapper; import java.io.File;
import de.hft.stuttgart.citydoctor2.mapper.citygml3.GMLValidationHandler; import java.io.FileInputStream;
import de.hft.stuttgart.citydoctor2.math.Vector3d; import java.io.IOException;
import de.hft.stuttgart.citydoctor2.utils.Localization; import java.io.InputStream;
import de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntry; import java.nio.charset.StandardCharsets;
import de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntryFile; import java.nio.file.Path;
import de.hft.stuttgart.quality.QualityADEContext; import java.nio.file.Paths;
import de.hft.stuttgart.quality.QualityADEModule; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.citygml4j.core.ade.ADEException; import org.citygml4j.core.ade.ADEException;
import org.citygml4j.core.ade.ADERegistry; import org.citygml4j.core.ade.ADERegistry;
import org.citygml4j.core.model.CityGMLVersion; import org.citygml4j.core.model.CityGMLVersion;
import org.citygml4j.core.model.ade.ADEProperty;
import org.citygml4j.core.model.core.AbstractCityObject; import org.citygml4j.core.model.core.AbstractCityObject;
import org.citygml4j.core.model.core.AbstractCityObjectProperty; import org.citygml4j.core.model.core.AbstractCityObjectProperty;
import org.citygml4j.core.model.core.AbstractFeature; import org.citygml4j.core.model.core.AbstractFeature;
import org.citygml4j.core.model.core.AbstractFeatureProperty;
import org.citygml4j.core.model.core.CityModel; import org.citygml4j.core.model.core.CityModel;
import org.citygml4j.core.util.CityGMLConstants; import org.citygml4j.core.util.CityGMLConstants;
import org.citygml4j.xml.CityGMLContext; import org.citygml4j.xml.CityGMLContext;
...@@ -68,30 +84,16 @@ import org.xmlobjects.schema.SchemaHandlerException; ...@@ -68,30 +84,16 @@ import org.xmlobjects.schema.SchemaHandlerException;
import org.xmlobjects.stream.XMLReader; import org.xmlobjects.stream.XMLReader;
import org.xmlobjects.stream.XMLReaderFactory; import org.xmlobjects.stream.XMLReaderFactory;
import javax.xml.XMLConstants; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
import javax.xml.namespace.QName; import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import javax.xml.parsers.ParserConfigurationException; import de.hft.stuttgart.citydoctor2.mapper.citygml3.Citygml3FeatureMapper;
import javax.xml.parsers.SAXParser; import de.hft.stuttgart.citydoctor2.mapper.citygml3.GMLValidationHandler;
import javax.xml.parsers.SAXParserFactory; import de.hft.stuttgart.citydoctor2.math.Vector3d;
import javax.xml.transform.Source; import de.hft.stuttgart.citydoctor2.utils.Localization;
import javax.xml.transform.stream.StreamSource; import de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntry;
import javax.xml.validation.Schema; import de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntryFile;
import javax.xml.validation.SchemaFactory; import de.hft.stuttgart.quality.QualityADEContext;
import javax.xml.validation.Validator; import de.hft.stuttgart.quality.QualityADEModule;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* Utility class to parse CityGML files. * Utility class to parse CityGML files.
...@@ -430,6 +432,7 @@ public class CityGmlParser { ...@@ -430,6 +432,7 @@ public class CityGmlParser {
writer.writeMember(chunk); writer.writeMember(chunk);
} }
} }
// end of stream // end of stream
logger.debug("End of gml file stream"); logger.debug("End of gml file stream");
} catch (CityGMLReadException e) { } catch (CityGMLReadException e) {
...@@ -447,10 +450,10 @@ public class CityGmlParser { ...@@ -447,10 +450,10 @@ public class CityGmlParser {
} }
} }
private static void writeCityModel(CityGMLChunkWriter writer, CityModel cModel) { private static void writeCityModel(CityGMLChunkWriter writer, CityModel cModel) throws CityGMLWriteException {
if (writer != null) { if (writer != null) {
for (ADEProperty genEle : cModel.getADEProperties()) { for (AbstractFeatureProperty featureProp : cModel.getFeatureMembers()) {
writer.getCityModelInfo().addADEProperty(genEle); writer.writeMember(featureProp.getObject());
} }
} }
} }
......
package de.hft.stuttgart.citydoctor2.utils; package de.hft.stuttgart.citydoctor2.utils;
import java.io.Serial;
/** /**
* This Throwable signals that a requested CheckError was found. * This Throwable signals that a requested CheckError was found.
*/ */
public class CheckErrorFound extends Throwable { public class CheckErrorFound extends Throwable {
@Serial
private static final long serialVersionUID = -2066876428396230230L;
public CheckErrorFound() { public CheckErrorFound() {
super("CheckError was found", null, true, false); super("CheckError was found", null, true, false);
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.Checkable;
...@@ -9,7 +9,7 @@ import java.util.List; ...@@ -9,7 +9,7 @@ import java.util.List;
/** /**
* This Visitor collects all CheckErrors in the datastructure of a checkable. * This Visitor collects all CheckErrors in the datastructure of a checkable.
*/ */
public class CheckableErrorCollector extends AbstractCheck { public class CheckableErrorCollector extends CheckableUtilsVisitor {
List<CheckError> errors; List<CheckError> errors;
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject; import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import java.util.HashSet; import java.util.HashSet;
...@@ -9,7 +9,7 @@ import java.util.Set; ...@@ -9,7 +9,7 @@ import java.util.Set;
/** /**
* This Visitor collects all sub-CityObjects that are in the datastructure of a CityObject (including itself) in a Set. * This Visitor collects all sub-CityObjects that are in the datastructure of a CityObject (including itself) in a Set.
*/ */
public class CityObjectCollector extends AbstractCheck { public class CityObjectCollector extends CheckableUtilsVisitor {
private final Set<CityObject> objects = new HashSet<>(); private final Set<CityObject> objects = new HashSet<>();
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
/** /**
* This Visitor removes the metadata created by the {@link PrepareForCheckingVisitor} for the low-memory consumption mode. * This Visitor removes the metadata created by the {@link PrepareForCheckingVisitor} for the low-memory consumption mode.
*/ */
public class ClearMetaInformationVisitor extends AbstractCheck { public class ClearMetaInformationVisitor extends CheckableUtilsVisitor {
@Override @Override
public void check(Geometry geometry) { public void check(Geometry geometry) {
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.Checkable;
/** /**
* This Visitor removes the check results from a CityObject and the objects in its datastructure. * This Visitor removes the check results from a CityObject and the objects in its datastructure.
*/ */
public class ClearCheckResultsVisitor extends AbstractCheck { public class ClearVisitorResultsVisitor extends CheckableUtilsVisitor {
@Override @Override
public void check(Checkable checkable) { public void check(Checkable checkable) {
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.Checkable;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound; import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
import de.hft.stuttgart.citydoctor2.utils.ThrowUtils; import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
...@@ -11,7 +11,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils; ...@@ -11,7 +11,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
* This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound}, * This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound},
* use {@link #checkObject(Checkable) ContainsAnyErrorVisitor.checkObject(Checkable)} to handle the Throwable. * use {@link #checkObject(Checkable) ContainsAnyErrorVisitor.checkObject(Checkable)} to handle the Throwable.
*/ */
public class ContainsAnyErrorVisitor extends AbstractCheck { public class ContainsAnyErrorVisitor extends CheckableUtilsVisitor {
/** /**
* Checks if a Checkable, or any Object in its datastructure, contains any error. * Checks if a Checkable, or any Object in its datastructure, contains any error.
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.Checkable;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound; import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
...@@ -12,7 +12,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils; ...@@ -12,7 +12,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
* This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound}, * This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound},
* use {@link #checkObject(Checkable, CheckId) ContainsAnyErrorVisitor.checkObject(Checkable, CheckId)} to handle the Throwable. * use {@link #checkObject(Checkable, CheckId) ContainsAnyErrorVisitor.checkObject(Checkable, CheckId)} to handle the Throwable.
*/ */
public class ContainsErrorVisitor extends AbstractCheck { public class ContainsErrorVisitor extends CheckableUtilsVisitor {
private CheckId checkId; private CheckId checkId;
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject; import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
...@@ -11,7 +11,7 @@ import java.util.Objects; ...@@ -11,7 +11,7 @@ import java.util.Objects;
* This Visitor recreates the Geometries of the original CityGml object from the associated Geometries in CityDoctor's * This Visitor recreates the Geometries of the original CityGml object from the associated Geometries in CityDoctor's
* internal model. * internal model.
*/ */
public class GmlGeometryRebuilder extends AbstractCheck { public class GmlGeometryRebuilder extends CheckableUtilsVisitor {
private final GeometryFactory factory; private final GeometryFactory factory;
private final ParserConfiguration config; private final ParserConfiguration config;
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
/** /**
* This Visitor prepares the {@link Geometry Geometries} in a Checkable for low-memory consumption mode. * This Visitor prepares the {@link Geometry Geometries} in a Checkable for low-memory consumption mode.
*/ */
public class PrepareForCheckingVisitor extends AbstractCheck { public class PrepareForCheckingVisitor extends CheckableUtilsVisitor {
@Override @Override
public void check(Geometry geom) { public void check(Geometry geom) {
......
package de.hft.stuttgart.citydoctor2.utils.visitors; package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject; import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
/** /**
* This Visitor removes the GmlGeometries from the linked original GmlObjects in a CityObject's datastructure to reduce * This Visitor removes the GmlGeometries from the linked original GmlObjects in a CityObject's datastructure to reduce
* memory bloat. * memory bloat.
*/ */
public class UnsetGeometriesVisitor extends AbstractCheck { public class UnsetGeometriesVisitor extends CheckableUtilsVisitor {
@Override @Override
......
...@@ -11,5 +11,8 @@ ...@@ -11,5 +11,8 @@
<Root level="debug" additivity="false"> <Root level="debug" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Root> </Root>
<Logger name="org.apache.fop" level="INFO">
<AppenderRef ref="console" />
</Logger>
</Loggers> </Loggers>
</Configuration> </Configuration>
\ No newline at end of file
...@@ -31,6 +31,7 @@ import org.junit.Test; ...@@ -31,6 +31,7 @@ import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.error.SchematronError; import de.hft.stuttgart.citydoctor2.check.error.SchematronError;
import de.hft.stuttgart.citydoctor2.datastructure.Building; import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
import de.hft.stuttgart.citydoctor2.datastructure.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
...@@ -90,7 +91,7 @@ public class CheckableTest { ...@@ -90,7 +91,7 @@ public class CheckableTest {
@Test @Test
public void testContainsError() { public void testContainsError() {
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);
assertFalse(b.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertFalse(b.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(b.containsAnyError()); assertFalse(b.containsAnyError());
...@@ -148,7 +149,7 @@ public class CheckableTest { ...@@ -148,7 +149,7 @@ public class CheckableTest {
@Test @Test
public void testCollectAllContainedErrors() { public void testCollectAllContainedErrors() {
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);
b.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, b.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR,
new SchematronError(null, null, null, null))); new SchematronError(null, null, null, null)));
......
...@@ -30,6 +30,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry; ...@@ -30,6 +30,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.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry.Orientation;
import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty;
import de.hft.stuttgart.quality.model.types.AbstractError; import de.hft.stuttgart.quality.model.types.AbstractError;
import de.hft.stuttgart.quality.model.types.AllPolygonsOrientedWrongError; import de.hft.stuttgart.quality.model.types.AllPolygonsOrientedWrongError;
...@@ -39,7 +40,7 @@ public class AllPolygonsWrongOrientationErrorTest { ...@@ -39,7 +40,7 @@ public class AllPolygonsWrongOrientationErrorTest {
@Test @Test
public void testAddToValidationResult() { public void testAddToValidationResult() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
GmlId gmlId = new GmlId("testId"); GmlId gmlId = new GmlId("testId");
geom.setGmlId(gmlId); geom.setGmlId(gmlId);
AllPolygonsWrongOrientationError err = new AllPolygonsWrongOrientationError(geom); AllPolygonsWrongOrientationError err = new AllPolygonsWrongOrientationError(geom);
......
...@@ -33,6 +33,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; ...@@ -33,6 +33,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
import de.hft.stuttgart.citydoctor2.datastructure.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
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;
import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty;
import de.hft.stuttgart.quality.model.properties.PolygonIdListProperty; import de.hft.stuttgart.quality.model.properties.PolygonIdListProperty;
import de.hft.stuttgart.quality.model.types.AbstractError; import de.hft.stuttgart.quality.model.types.AbstractError;
...@@ -44,7 +45,7 @@ public class MultipleConnectedComponentsErrorTest { ...@@ -44,7 +45,7 @@ public class MultipleConnectedComponentsErrorTest {
@Test @Test
public void testConvertToQualityAdeDatastructure() { public void testConvertToQualityAdeDatastructure() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
GmlId geomId = new GmlId("geomId"); GmlId geomId = new GmlId("geomId");
geom.setGmlId(geomId); geom.setGmlId(geomId);
Polygon p1 = new ConcretePolygon(); Polygon p1 = new ConcretePolygon();
......
...@@ -33,6 +33,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; ...@@ -33,6 +33,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
import de.hft.stuttgart.citydoctor2.datastructure.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
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.quality.model.properties.AbstractErrorProperty; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty;
import de.hft.stuttgart.quality.model.properties.EdgeProperty; import de.hft.stuttgart.quality.model.properties.EdgeProperty;
import de.hft.stuttgart.quality.model.types.AbstractError; import de.hft.stuttgart.quality.model.types.AbstractError;
...@@ -42,7 +43,7 @@ public class NonManifoldEdgeErrorTest { ...@@ -42,7 +43,7 @@ public class NonManifoldEdgeErrorTest {
@Test @Test
public void testConvertToQualityAdeDatastructure() { public void testConvertToQualityAdeDatastructure() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
GmlId geomId = new GmlId("geomId"); GmlId geomId = new GmlId("geomId");
geom.setGmlId(geomId); geom.setGmlId(geomId);
......
...@@ -34,6 +34,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlId; ...@@ -34,6 +34,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
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.quality.model.properties.AbstractErrorProperty; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty;
import de.hft.stuttgart.quality.model.types.AbstractError; import de.hft.stuttgart.quality.model.types.AbstractError;
import de.hft.stuttgart.quality.model.types.ValidationResult; import de.hft.stuttgart.quality.model.types.ValidationResult;
...@@ -42,7 +43,7 @@ public class NonManifoldVertexErrorTest { ...@@ -42,7 +43,7 @@ public class NonManifoldVertexErrorTest {
@Test @Test
public void testConvertToQualityAdeDatastructure() { public void testConvertToQualityAdeDatastructure() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD2, Orientation.OUTWARD);
GmlId geomId = new GmlId("geomId"); GmlId geomId = new GmlId("geomId");
geom.setGmlId(geomId); geom.setGmlId(geomId);
Polygon p1 = new ConcretePolygon(); Polygon p1 = new ConcretePolygon();
......
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