From f95176d1dd1f433e2db7af5354f91e6c20220443 Mon Sep 17 00:00:00 2001 From: Riegel Date: Mon, 27 Jan 2025 11:54:53 +0100 Subject: [PATCH] Fix: Backwards compatibility with CityGML 2.0 --- .../citydoctor2/datastructure/CityFurniture.java | 8 ++++++++ .../citydoctor2/datastructure/GenericCityObject.java | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java index 3b73f01b..e8e83d59 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java @@ -76,12 +76,18 @@ public class CityFurniture extends CityObject { case LOD0: cgmlCityFurniture.setLod0MultiSurface(new MultiSurfaceProperty(ms)); break; + case LOD1: + cgmlCityFurniture.getDeprecatedProperties().setLod1Geometry(new MultiSurfaceProperty(ms)); + break; case LOD2: cgmlCityFurniture.setLod2MultiSurface(new MultiSurfaceProperty(ms)); break; case LOD3: cgmlCityFurniture.setLod3MultiSurface(new MultiSurfaceProperty(ms)); break; + case LOD4: + cgmlCityFurniture.getDeprecatedProperties().setLod4Geometry(new MultiSurfaceProperty(ms)); + break; default: throw new IllegalStateException("Cannot add " + geom.getLod() + " multi surface to buildings"); } @@ -98,6 +104,8 @@ public class CityFurniture extends CityObject { case LOD3: cgmlCityFurniture.setLod3Solid(new SolidProperty(solid)); break; + case LOD4: + cgmlCityFurniture.getDeprecatedProperties().setLod4Geometry(new SolidProperty(solid)); default: throw new IllegalStateException("Cannot add " + geom.getLod() + " solid to buildings"); } diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java index 3ddaa0f0..40a8c416 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java @@ -84,14 +84,20 @@ public class GenericCityObject extends CityObject { case LOD0: cgmlGos.setLod0MultiSurface(new MultiSurfaceProperty(ms)); break; + case LOD1: + cgmlGos.getDeprecatedProperties().setLod1Geometry(new MultiSurfaceProperty(ms)); + break; case LOD2: cgmlGos.setLod2MultiSurface(new MultiSurfaceProperty(ms)); break; case LOD3: cgmlGos.setLod3MultiSurface(new MultiSurfaceProperty(ms)); break; + case LOD4: + cgmlGos.getDeprecatedProperties().setLod4Geometry(new MultiSurfaceProperty(ms)); + break; default: - throw new IllegalStateException("Cannot add " + geom.getLod() + " multi surface to buildings"); + throw new IllegalStateException("Cannot add " + geom.getLod() + " multi surface to generic city object"); } } @@ -106,6 +112,9 @@ public class GenericCityObject extends CityObject { case LOD3: cgmlGos.setLod3Solid(new SolidProperty(solid)); break; + case LOD4: + cgmlGos.getDeprecatedProperties().setLod4Geometry(new SolidProperty(solid)); + break; default: throw new IllegalStateException("Cannot add " + geom.getLod() + " solid to buildings"); } -- GitLab