Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
a6da3282
Commit
a6da3282
authored
Oct 29, 2024
by
Riegel
Browse files
Fix ImplicitGeometry double saving Geometry on export
parent
3fe565d8
Changes
14
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java
View file @
a6da3282
...
@@ -114,6 +114,9 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -114,6 +114,9 @@ public abstract class AbstractBuilding extends CityObject {
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuildingSubdivision.java
View file @
a6da3282
...
@@ -77,6 +77,9 @@ public abstract class AbstractBuildingSubdivision extends CityObject{
...
@@ -77,6 +77,9 @@ public abstract class AbstractBuildingSubdivision extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractFurniture.java
View file @
a6da3282
...
@@ -105,6 +105,9 @@ public abstract class AbstractFurniture extends CityObject{
...
@@ -105,6 +105,9 @@ public abstract class AbstractFurniture extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractRoom.java
View file @
a6da3282
...
@@ -113,6 +113,9 @@ public abstract class AbstractRoom extends CityObject{
...
@@ -113,6 +113,9 @@ public abstract class AbstractRoom extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractTunnel.java
View file @
a6da3282
...
@@ -84,6 +84,9 @@ public abstract class AbstractTunnel extends CityObject{
...
@@ -84,6 +84,9 @@ public abstract class AbstractTunnel extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BoundarySurface.java
View file @
a6da3282
...
@@ -94,6 +94,9 @@ public class BoundarySurface extends CityObject {
...
@@ -94,6 +94,9 @@ public class BoundarySurface extends CityObject {
gmlObject
.
setId
(
getGmlId
().
getGmlString
());
gmlObject
.
setId
(
getGmlId
().
getGmlString
());
}
}
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
if
(
ms
!=
null
)
{
if
(
ms
!=
null
)
{
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeConstructiveElement.java
View file @
a6da3282
...
@@ -70,6 +70,9 @@ public class BridgeConstructiveElement extends CityObject {
...
@@ -70,6 +70,9 @@ public class BridgeConstructiveElement extends CityObject {
// unknown which CityGML is handled here
// unknown which CityGML is handled here
// need context information to decide
// need context information to decide
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
switch
(
geom
.
getType
())
{
switch
(
geom
.
getType
())
{
case
SOLID:
case
SOLID:
Solid
solid
=
CityGmlUtils
.
createSolid
(
geom
,
factory
,
config
);
Solid
solid
=
CityGmlUtils
.
createSolid
(
geom
,
factory
,
config
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
View file @
a6da3282
...
@@ -80,6 +80,9 @@ public class BridgeObject extends CityObject {
...
@@ -80,6 +80,9 @@ public class BridgeObject extends CityObject {
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java
View file @
a6da3282
...
@@ -53,6 +53,9 @@ public class CityFurniture extends CityObject{
...
@@ -53,6 +53,9 @@ public class CityFurniture extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java
View file @
a6da3282
...
@@ -49,6 +49,9 @@ public class GenericCityObject extends CityObject{
...
@@ -49,6 +49,9 @@ public class GenericCityObject extends CityObject{
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
setMultiSurfaceAccordingToLod
(
geom
,
ms
);
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObject.java
View file @
a6da3282
...
@@ -70,6 +70,9 @@ public class TransportationObject extends CityObject {
...
@@ -70,6 +70,9 @@ public class TransportationObject extends CityObject {
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
switch
(
type
)
{
switch
(
type
)
{
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/Vegetation.java
View file @
a6da3282
...
@@ -68,6 +68,9 @@ public class Vegetation extends CityObject {
...
@@ -68,6 +68,9 @@ public class Vegetation extends CityObject {
@Override
@Override
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
public
void
reCreateGeometries
(
GeometryFactory
factory
,
ParserConfiguration
config
)
{
for
(
Geometry
geom
:
getGeometries
())
{
for
(
Geometry
geom
:
getGeometries
())
{
if
(
geom
instanceof
ImplicitGeometryHolder
){
continue
;
}
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
if
(
geom
.
getType
()
==
GeometryType
.
MULTI_SURFACE
)
{
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
MultiSurface
ms
=
CityGmlUtils
.
createMultiSurface
(
geom
,
factory
,
config
);
if
(
type
==
VegetationType
.
SOLITARY_VEGETATION_OBJECT
)
{
if
(
type
==
VegetationType
.
SOLITARY_VEGETATION_OBJECT
)
{
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/writer/CityGMLWriterUtils.java
View file @
a6da3282
...
@@ -172,6 +172,7 @@ public class CityGMLWriterUtils {
...
@@ -172,6 +172,7 @@ public class CityGMLWriterUtils {
if
(
model
.
isValidated
()
&&
val
!=
null
)
{
if
(
model
.
isValidated
()
&&
val
!=
null
)
{
QualityADEUtils
.
writeQualityAde
(
co
,
val
);
QualityADEUtils
.
writeQualityAde
(
co
,
val
);
}
}
co
.
reCreateGeometries
(
gmlFactory
,
model
.
getParserConfig
());
co
.
reCreateGeometries
(
gmlFactory
,
model
.
getParserConfig
());
cModel
.
getCityObjectMembers
().
add
(
new
AbstractCityObjectProperty
(
co
.
getGmlObject
()));
cModel
.
getCityObjectMembers
().
add
(
new
AbstractCityObjectProperty
(
co
.
getGmlObject
()));
}
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
View file @
a6da3282
...
@@ -1202,6 +1202,7 @@ public class CityDoctorController {
...
@@ -1202,6 +1202,7 @@ public class CityDoctorController {
Settings
.
set
(
Settings
.
LAST_OPEN_FOLDER
,
f
.
getParent
());
Settings
.
set
(
Settings
.
LAST_OPEN_FOLDER
,
f
.
getParent
());
try
{
try
{
storeModel
(
f
,
saveWithQualityAde
);
storeModel
(
f
,
saveWithQualityAde
);
logger
.
info
(
"Saving successful"
);
}
catch
(
CityDoctorWriteException
e
)
{
}
catch
(
CityDoctorWriteException
e
)
{
mainWindow
.
showExceptionDialog
(
e
);
mainWindow
.
showExceptionDialog
(
e
);
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment