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
89433d80
Commit
89433d80
authored
Oct 02, 2024
by
Riegel
Browse files
Add support for GenericCityObject objects
parent
5e5e7ad6
Changes
3
Show whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityDoctorModel.java
View file @
89433d80
...
@@ -58,6 +58,7 @@ public class CityDoctorModel {
...
@@ -58,6 +58,7 @@ public class CityDoctorModel {
private
final
List
<
Vegetation
>
vegetation
;
private
final
List
<
Vegetation
>
vegetation
;
private
final
List
<
BridgeObject
>
bridges
;
private
final
List
<
BridgeObject
>
bridges
;
private
final
List
<
CityFurniture
>
cityfurniture
;
private
final
List
<
CityFurniture
>
cityfurniture
;
private
final
List
<
GenericCityObject
>
genericObjects
;
private
final
List
<
CityObject
>
land
;
private
final
List
<
CityObject
>
land
;
private
final
List
<
TransportationObject
>
roads
;
private
final
List
<
TransportationObject
>
roads
;
private
final
List
<
WaterObject
>
water
;
private
final
List
<
WaterObject
>
water
;
...
@@ -84,6 +85,7 @@ public class CityDoctorModel {
...
@@ -84,6 +85,7 @@ public class CityDoctorModel {
roads
=
new
ArrayList
<>();
roads
=
new
ArrayList
<>();
water
=
new
ArrayList
<>();
water
=
new
ArrayList
<>();
cityfurniture
=
new
ArrayList
<>();
cityfurniture
=
new
ArrayList
<>();
genericObjects
=
new
ArrayList
<>();
globalErrors
=
new
ArrayList
<>();
globalErrors
=
new
ArrayList
<>();
}
}
...
@@ -227,6 +229,7 @@ public class CityDoctorModel {
...
@@ -227,6 +229,7 @@ public class CityDoctorModel {
collectErrorsFromList
(
errors
,
roads
);
collectErrorsFromList
(
errors
,
roads
);
collectErrorsFromList
(
errors
,
water
);
collectErrorsFromList
(
errors
,
water
);
collectErrorsFromList
(
errors
,
cityfurniture
);
collectErrorsFromList
(
errors
,
cityfurniture
);
collectErrorsFromList
(
errors
,
genericObjects
);
return
new
HashSet
<>(
errors
);
return
new
HashSet
<>(
errors
);
}
}
...
@@ -264,6 +267,14 @@ public class CityDoctorModel {
...
@@ -264,6 +267,14 @@ public class CityDoctorModel {
cityfurniture
.
add
(
coFurniture
);
cityfurniture
.
add
(
coFurniture
);
}
}
public
List
<
GenericCityObject
>
getGenericCityObjects
(){
return
genericObjects
;
}
public
void
addGenericCityObject
(
GenericCityObject
coGenericCityObject
){
genericObjects
.
add
(
coGenericCityObject
);
}
public
void
setCityModel
(
CityModel
cModel
)
{
public
void
setCityModel
(
CityModel
cModel
)
{
this
.
cModel
=
cModel
;
this
.
cModel
=
cModel
;
}
}
...
@@ -327,6 +338,8 @@ public class CityDoctorModel {
...
@@ -327,6 +338,8 @@ public class CityDoctorModel {
replaceWaterObject
(
currentFeature
,
nextFeature
);
replaceWaterObject
(
currentFeature
,
nextFeature
);
}
else
if
(
nextFeature
instanceof
CityFurniture
)
{
}
else
if
(
nextFeature
instanceof
CityFurniture
)
{
replaceCityFurniture
(
currentFeature
,
nextFeature
);
replaceCityFurniture
(
currentFeature
,
nextFeature
);
}
else
if
(
nextFeature
instanceof
GenericCityObject
)
{
replaceGenericCityObject
(
currentFeature
,
nextFeature
);
}
}
}
}
...
@@ -362,6 +375,14 @@ public class CityDoctorModel {
...
@@ -362,6 +375,14 @@ public class CityDoctorModel {
cityfurniture
.
set
(
index
,
(
CityFurniture
)
nextFeature
);
cityfurniture
.
set
(
index
,
(
CityFurniture
)
nextFeature
);
}
}
private
void
replaceGenericCityObject
(
CityObject
currentFeature
,
CityObject
nextFeature
)
{
int
index
=
genericObjects
.
indexOf
(
currentFeature
);
if
(
index
==
-
1
)
{
throw
new
IllegalStateException
(
COULD_NOT_FIND_FEATURE
+
currentFeature
+
" in generic city objects"
);
}
genericObjects
.
set
(
index
,
(
GenericCityObject
)
nextFeature
);
}
private
void
replaceTransportationObject
(
CityObject
currentFeature
,
CityObject
nextFeature
)
{
private
void
replaceTransportationObject
(
CityObject
currentFeature
,
CityObject
nextFeature
)
{
int
index
=
roads
.
indexOf
(
currentFeature
);
int
index
=
roads
.
indexOf
(
currentFeature
);
if
(
index
==
-
1
)
{
if
(
index
==
-
1
)
{
...
@@ -403,6 +424,10 @@ public class CityDoctorModel {
...
@@ -403,6 +424,10 @@ public class CityDoctorModel {
land
.
add
(
co
);
land
.
add
(
co
);
}
else
if
(
co
instanceof
TinObject
)
{
}
else
if
(
co
instanceof
TinObject
)
{
land
.
add
(
co
);
land
.
add
(
co
);
}
else
if
(
co
instanceof
CityFurniture
cf
)
{
cityfurniture
.
add
(
cf
);
}
else
if
(
co
instanceof
GenericCityObject
gco
)
{
genericObjects
.
add
(
gco
);
}
}
}
}
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/FeatureType.java
View file @
89433d80
...
@@ -27,6 +27,6 @@ package de.hft.stuttgart.citydoctor2.datastructure;
...
@@ -27,6 +27,6 @@ package de.hft.stuttgart.citydoctor2.datastructure;
public
enum
FeatureType
{
public
enum
FeatureType
{
BUILDING
,
TRANSPORTATION
,
VEGETATION
,
BRIDGE
,
LAND
,
WATER
,
BOUNDARY_SURFACE
,
INSTALLATION
,
OPENING
,
BUILDING
,
TRANSPORTATION
,
VEGETATION
,
BRIDGE
,
LAND
,
WATER
,
BOUNDARY_SURFACE
,
INSTALLATION
,
OPENING
,
BUILDING_PART
,
BRIDGE_CONSTRUCTION_ELEMENT
,
BRIDGE_INSTALLATION
,
ROOM
,
FURNITURE
,
CITY_FURNITURE
BUILDING_PART
,
BRIDGE_CONSTRUCTION_ELEMENT
,
BRIDGE_INSTALLATION
,
ROOM
,
FURNITURE
,
CITY_FURNITURE
,
GENERIC_CITY_OBJECT
}
}
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/mapper/citygml3/Citygml3FeatureMapper.java
View file @
89433d80
...
@@ -128,8 +128,15 @@ public class Citygml3FeatureMapper extends ObjectWalker {
...
@@ -128,8 +128,15 @@ public class Citygml3FeatureMapper extends ObjectWalker {
model
.
addCityFurniture
(
cf
);
model
.
addCityFurniture
(
cf
);
}
}
@Override
public
void
visit
(
org
.
citygml4j
.
core
.
model
.
generics
.
GenericOccupiedSpace
gos
){
public
void
visit
(
org
.
citygml4j
.
core
.
model
.
generics
.
GenericOccupiedSpace
gos
){
System
.
out
.
println
(
gos
.
toString
());
GenericCityObject
gco
=
new
GenericCityObject
();
gco
.
setGmlObject
(
gos
);
mapAbstractOccupiedSpace
(
gos
,
gco
);
resolveAndClearReferences
();
gco
.
unsetGmlGeometries
();
updateEdgesAndVertices
(
gco
);
model
.
addGenericCityObject
(
gco
);
}
}
...
...
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