Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
53599b81
Commit
53599b81
authored
3 days ago
by
Riegel
Browse files
Options
Download
Email Patches
Plain Diff
Refactor: Make PolygonPatch collection typesafe
parent
1f996e76
master
dev
dev_gui_features_zip_loading
archive/dev_gui_features_zip_loading
2 merge requests
!28
Version 3.17.0 Release
,
!27
TransportationObject model rework
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/ConcretePolygon.java
+13
-0
.../stuttgart/citydoctor2/datastructure/ConcretePolygon.java
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/PatchCollection.java
+33
-0
.../stuttgart/citydoctor2/datastructure/PatchCollection.java
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/mapper/citygml3/Citygml3GeometryMapper.java
+14
-12
...t/citydoctor2/mapper/citygml3/Citygml3GeometryMapper.java
with
60 additions
and
12 deletions
+60
-12
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/ConcretePolygon.java
+
13
-
0
View file @
53599b81
...
...
@@ -50,6 +50,7 @@ public class ConcretePolygon extends Polygon {
private
BoundarySurface
partOfSurface
;
private
Installation
partfOfInstallation
;
private
CompositeCollection
partOfComposite
=
null
;
private
PatchCollection
partOfPatch
=
null
;
private
Geometry
parent
;
private
LinkedPolygon
linkedFromPolygon
;
...
...
@@ -141,6 +142,18 @@ public class ConcretePolygon extends Polygon {
this
.
partOfComposite
=
comp
;
}
protected
void
setPartOfPatch
(
PatchCollection
pc
)
{
this
.
partOfPatch
=
pc
;
}
public
PatchCollection
getPartOfPatch
(
PatchCollection
pc
)
{
return
partOfPatch
;
}
public
boolean
isPatchMember
()
{
return
partOfPatch
!=
null
;
}
public
CompositeCollection
getPartOfComposite
()
{
return
partOfComposite
;
}
...
...
This diff is collapsed.
Click to expand it.
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/PatchCollection.java
0 → 100644
+
33
-
0
View file @
53599b81
package
de.hft.stuttgart.citydoctor2.datastructure
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
public
final
class
PatchCollection
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
1748657379840997228L
;
private
GmlId
gmlId
;
private
List
<
ConcretePolygon
>
patchMembers
=
new
ArrayList
<>();
public
void
addPatchMember
(
ConcretePolygon
patchMember
)
{
patchMembers
.
add
(
patchMember
);
patchMember
.
setPartOfPatch
(
this
);
}
public
List
<
ConcretePolygon
>
getPatchMembers
()
{
return
new
ArrayList
<>(
patchMembers
);
}
public
void
setGmlId
(
GmlId
gmlId
)
{
this
.
gmlId
=
gmlId
;
}
public
GmlId
getGmlId
()
{
return
gmlId
;
}
}
This diff is collapsed.
Click to expand it.
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/mapper/citygml3/Citygml3GeometryMapper.java
+
14
-
12
View file @
53599b81
...
...
@@ -65,24 +65,26 @@ public class Citygml3GeometryMapper extends GeometryWalker {
@Override
public
void
visit
(
Surface
surface
)
{
// TODO: Implement like CompositeSurfaces, just with PolygonPatches
if
(
surface
.
getPatches
()
!=
null
&&
!
surface
.
getPatches
().
isSetObjects
())
{
logger
.
warn
(
"Surface {} has no PolygonPatches."
,
surface
.
getId
());
return
;
}
CompositeCollection
comp
=
new
CompositeCollection
();
List
<
PolygonPatch
>
polygonPatches
=
(
List
<
PolygonPatch
>)
surface
.
getPatches
().
getObjects
();
Citygml3GeometryMapper
recursiveMapper
=
new
Citygml3GeometryMapper
(
config
,
vertexMap
);
List
<
PolygonPatch
>
polygonPatches
=
new
ArrayList
<>();
GeometryWalker
patchCollector
=
new
GeometryWalker
()
{
@Override
public
void
visit
(
PolygonPatch
pp
)
{
polygonPatches
.
add
(
pp
);
}
};
surface
.
getPatches
().
getObjects
().
forEach
(
abstractSurfacePatch
->
abstractSurfacePatch
.
accept
(
patchCollector
));
PatchCollection
patchCollection
=
new
PatchCollection
();
Citygml3GeometryMapper
patchMapper
=
new
Citygml3GeometryMapper
(
config
,
vertexMap
);
for
(
PolygonPatch
patch
:
polygonPatches
)
{
recursive
Mapper
.
parsePolygonPatch
(
patch
.
getExterior
(),
patch
.
getInterior
());
patch
Mapper
.
parsePolygonPatch
(
patch
.
getExterior
(),
patch
.
getInterior
());
}
List
<
ConcretePolygon
>
compPolys
=
recursiveMapper
.
getPolygons
();
compPolys
.
forEach
(
comp:
:
addCompositeMember
);
comp
.
addAllChildComposites
(
recursiveMapper
.
getComposites
());
composites
.
add
(
comp
);
polygons
.
addAll
(
compPolys
);
List
<
ConcretePolygon
>
patchPolys
=
patchMapper
.
getPolygons
();
patchPolys
.
forEach
(
patchCollection:
:
addPatchMember
);
polygons
.
addAll
(
patchPolys
);
}
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Explore
Projects
Groups
Snippets