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
c949352d
Commit
c949352d
authored
Oct 07, 2024
by
Riegel
Browse files
Add rendering of Storeys and BuildingUnits
parent
7d24a81b
Changes
8
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java
View file @
c949352d
...
@@ -56,7 +56,8 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -56,7 +56,8 @@ public abstract class AbstractBuilding extends CityObject {
private
final
List
<
Installation
>
buildingInstallations
=
new
ArrayList
<>(
2
);
private
final
List
<
Installation
>
buildingInstallations
=
new
ArrayList
<>(
2
);
private
final
List
<
BoundarySurface
>
boundarySurfaceList
=
new
ArrayList
<>();
private
final
List
<
BoundarySurface
>
boundarySurfaceList
=
new
ArrayList
<>();
private
final
List
<
BuildingRoom
>
buildingRooms
=
new
ArrayList
<>();
private
final
List
<
BuildingRoom
>
buildingRooms
=
new
ArrayList
<>();
private
final
List
<
AbstractBuildingSubdivision
>
buildingSubdivisions
=
new
ArrayList
<>();
private
final
List
<
Storey
>
buildingStoreys
=
new
ArrayList
<>();
private
final
List
<
BuildingUnit
>
buildingUnits
=
new
ArrayList
<>();
private
final
List
<
BuildingRoomFurniture
>
buildingRoomFurnitureList
=
new
ArrayList
<>();
private
final
List
<
BuildingRoomFurniture
>
buildingRoomFurnitureList
=
new
ArrayList
<>();
private
org
.
citygml4j
.
core
.
model
.
building
.
AbstractBuilding
ab
;
private
org
.
citygml4j
.
core
.
model
.
building
.
AbstractBuilding
ab
;
...
@@ -102,8 +103,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -102,8 +103,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
unsetGmlGeometries
();
bfr
.
unsetGmlGeometries
();
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
unsetGmlGeometries
();
storey
.
unsetGmlGeometries
();
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
unsetGmlGeometries
();
}
}
}
}
...
@@ -130,8 +134,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -130,8 +134,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
reCreateGeometries
(
factory
,
config
);
bfr
.
reCreateGeometries
(
factory
,
config
);
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
reCreateGeometries
(
factory
,
config
);
storey
.
reCreateGeometries
(
factory
,
config
);
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
reCreateGeometries
(
factory
,
config
);
}
}
}
}
...
@@ -208,8 +215,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -208,8 +215,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
accept
(
c
);
bfr
.
accept
(
c
);
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
accept
(
c
);
storey
.
accept
(
c
);
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
accept
(
c
);
}
}
}
}
...
@@ -228,8 +238,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -228,8 +238,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
collectContainedErrors
(
errors
);
bfr
.
collectContainedErrors
(
errors
);
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
collectContainedErrors
(
errors
);
storey
.
collectContainedErrors
(
errors
);
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
collectContainedErrors
(
errors
);
}
}
}
}
...
@@ -248,8 +261,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -248,8 +261,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
clearAllContainedCheckResults
();
bfr
.
clearAllContainedCheckResults
();
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
clearAllContainedCheckResults
();
storey
.
clearAllContainedCheckResults
();
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
clearAllContainedCheckResults
();
}
}
}
}
...
@@ -279,8 +295,13 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -279,8 +295,13 @@ public abstract class AbstractBuilding extends CityObject {
return
true
;
return
true
;
}
}
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
if
(
abs
.
containsError
(
checkIdentifier
))
{
if
(
storey
.
containsError
(
checkIdentifier
))
{
return
true
;
}
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
if
(
bu
.
containsError
(
checkIdentifier
))
{
return
true
;
return
true
;
}
}
}
}
...
@@ -313,8 +334,13 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -313,8 +334,13 @@ public abstract class AbstractBuilding extends CityObject {
return
true
;
return
true
;
}
}
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
if
(
abs
.
containsAnyError
())
{
if
(
storey
.
containsAnyError
())
{
return
true
;
}
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
if
(
bu
.
containsAnyError
())
{
return
true
;
return
true
;
}
}
}
}
...
@@ -345,8 +371,12 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -345,8 +371,12 @@ public abstract class AbstractBuilding extends CityObject {
roomFurniture
.
setParent
(
this
);
roomFurniture
.
setParent
(
this
);
}
}
public
void
addAbstractBuildingSubdivision
(
AbstractBuildingSubdivision
abs
)
{
public
void
addStorey
(
Storey
storey
)
{
buildingSubdivisions
.
add
(
abs
);
buildingStoreys
.
add
(
storey
);
}
public
void
addBuildingUnit
(
BuildingUnit
buildingUnit
)
{
buildingUnits
.
add
(
buildingUnit
);
}
}
public
void
setGmlObject
(
org
.
citygml4j
.
core
.
model
.
building
.
AbstractBuilding
ab
)
{
public
void
setGmlObject
(
org
.
citygml4j
.
core
.
model
.
building
.
AbstractBuilding
ab
)
{
...
@@ -365,8 +395,12 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -365,8 +395,12 @@ public abstract class AbstractBuilding extends CityObject {
return
buildingRoomFurnitureList
;
return
buildingRoomFurnitureList
;
}
}
public
List
<
AbstractBuildingSubdivision
>
getBuildingSubdivisions
()
{
public
List
<
Storey
>
getBuildingStoreys
()
{
return
buildingSubdivisions
;
return
buildingStoreys
;
}
public
List
<
BuildingUnit
>
getBuildingUnits
()
{
return
buildingUnits
;
}
}
@Override
@Override
...
@@ -384,8 +418,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -384,8 +418,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
prepareForChecking
();
bfr
.
prepareForChecking
();
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
prepareForChecking
();
storey
.
prepareForChecking
();
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
prepareForChecking
();
}
}
}
}
...
@@ -404,8 +441,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -404,8 +441,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
bfr
:
buildingRoomFurnitureList
)
{
bfr
.
clearMetaInformation
();
bfr
.
clearMetaInformation
();
}
}
for
(
AbstractBuildingSubdivision
abs
:
buildingSubdivisions
)
{
for
(
Storey
storey
:
buildingStoreys
)
{
abs
.
clearMetaInformation
();
storey
.
clearMetaInformation
();
}
for
(
BuildingUnit
bu
:
buildingUnits
)
{
bu
.
clearMetaInformation
();
}
}
}
}
...
@@ -416,7 +456,8 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -416,7 +456,8 @@ public abstract class AbstractBuilding extends CityObject {
handler
.
addInstance
(
buildingInstallations
);
handler
.
addInstance
(
buildingInstallations
);
handler
.
addInstance
(
buildingRooms
);
handler
.
addInstance
(
buildingRooms
);
handler
.
addInstance
(
buildingRoomFurnitureList
);
handler
.
addInstance
(
buildingRoomFurnitureList
);
handler
.
addInstance
(
buildingSubdivisions
);
handler
.
addInstance
(
buildingStoreys
);
handler
.
addInstance
(
buildingUnits
);
}
}
@Override
@Override
...
@@ -435,8 +476,11 @@ public abstract class AbstractBuilding extends CityObject {
...
@@ -435,8 +476,11 @@ public abstract class AbstractBuilding extends CityObject {
for
(
BuildingRoomFurniture
originalBFR
:
originalAb
.
buildingRoomFurnitureList
)
{
for
(
BuildingRoomFurniture
originalBFR
:
originalAb
.
buildingRoomFurnitureList
)
{
buildingRoomFurnitureList
.
add
(
handler
.
getCopyInstance
(
originalBFR
));
buildingRoomFurnitureList
.
add
(
handler
.
getCopyInstance
(
originalBFR
));
}
}
for
(
AbstractBuildingSubdivision
originalBSub
:
originalAb
.
buildingSubdivisions
)
{
for
(
Storey
originalBStoreys
:
originalAb
.
buildingStoreys
)
{
buildingSubdivisions
.
add
(
handler
.
getCopyInstance
(
originalBSub
));
buildingStoreys
.
add
(
handler
.
getCopyInstance
(
originalBStoreys
));
}
for
(
BuildingUnit
originalBun
:
originalAb
.
buildingUnits
)
{
buildingUnits
.
add
(
handler
.
getCopyInstance
(
originalBun
));
}
}
ab
=
originalAb
.
ab
;
ab
=
originalAb
.
ab
;
}
}
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/mapper/citygml3/Citygml3FeatureMapper.java
View file @
c949352d
...
@@ -41,6 +41,8 @@ import org.citygml4j.core.model.bridge.BridgePart;
...
@@ -41,6 +41,8 @@ import org.citygml4j.core.model.bridge.BridgePart;
import
org.citygml4j.core.model.bridge.BridgePartProperty
;
import
org.citygml4j.core.model.bridge.BridgePartProperty
;
import
org.citygml4j.core.model.building.*
;
import
org.citygml4j.core.model.building.*
;
import
org.citygml4j.core.model.building.BuildingFurniture
;
import
org.citygml4j.core.model.building.BuildingFurniture
;
import
org.citygml4j.core.model.building.BuildingUnit
;
import
org.citygml4j.core.model.building.Storey
;
import
org.citygml4j.core.model.construction.AbstractConstruction
;
import
org.citygml4j.core.model.construction.AbstractConstruction
;
import
org.citygml4j.core.model.core.AbstractCityObject
;
import
org.citygml4j.core.model.core.AbstractCityObject
;
import
org.citygml4j.core.model.core.AbstractFeatureWithLifespan
;
import
org.citygml4j.core.model.core.AbstractFeatureWithLifespan
;
...
@@ -605,6 +607,22 @@ public class Citygml3FeatureMapper extends ObjectWalker {
...
@@ -605,6 +607,22 @@ public class Citygml3FeatureMapper extends ObjectWalker {
cdBuilding
.
addBuildingRoom
(
br
);
cdBuilding
.
addBuildingRoom
(
br
);
}
}
for
(
AbstractBuildingSubdivisionProperty
abs
:
gmlAb
.
getBuildingSubdivisions
())
{
var
gmlABS
=
abs
.
getObject
();
if
(
gmlABS
==
null
)
{
continue
;
}
if
(
gmlABS
instanceof
Storey
gmlStorey
)
{
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
Storey
storey
=
mapBuildingStorey
(
gmlStorey
);
cdBuilding
.
addStorey
(
storey
);
}
else
if
(
gmlABS
instanceof
BuildingUnit
gmlBU
){
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
BuildingUnit
bu
=
mapBuildingUnit
(
gmlBU
);
cdBuilding
.
addBuildingUnit
(
bu
);
}
}
SurfaceMapper
surfaceMapper
=
new
SurfaceMapper
(
polygonMap
,
references
,
vertexMap
,
config
);
SurfaceMapper
surfaceMapper
=
new
SurfaceMapper
(
polygonMap
,
references
,
vertexMap
,
config
);
for
(
AbstractSpaceBoundaryProperty
surfaceProp
:
gmlAb
.
getBoundaries
())
{
for
(
AbstractSpaceBoundaryProperty
surfaceProp
:
gmlAb
.
getBoundaries
())
{
if
(!
surfaceProp
.
isSetObject
())
{
if
(!
surfaceProp
.
isSetObject
())
{
...
@@ -711,6 +729,54 @@ public class Citygml3FeatureMapper extends ObjectWalker {
...
@@ -711,6 +729,54 @@ public class Citygml3FeatureMapper extends ObjectWalker {
}
}
private
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
Storey
mapBuildingStorey
(
Storey
gmlStorey
){
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
Storey
storey
=
new
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
Storey
();
storey
.
setGmlObject
(
gmlStorey
);
mapAbstractSpace
(
gmlStorey
,
storey
);
storey
.
unsetGmlGeometries
();
SurfaceMapper
surfaceMapper
=
new
SurfaceMapper
(
polygonMap
,
references
,
vertexMap
,
config
);
for
(
AbstractSpaceBoundaryProperty
surfaceProp
:
gmlStorey
.
getBoundaries
())
{
if
(!
surfaceProp
.
isSetObject
())
{
continue
;
}
AbstractSpaceBoundary
surface
=
surfaceProp
.
getObject
();
surface
.
accept
(
surfaceMapper
);
}
for
(
BoundarySurface
bs
:
surfaceMapper
.
getSurfaces
())
{
storey
.
addBoundarySurface
(
bs
);
for
(
Geometry
geom
:
bs
.
getGeometries
())
{
for
(
Polygon
p
:
geom
.
getPolygons
())
{
p
.
setPartOfSurface
(
bs
);
}
}
}
return
storey
;
}
private
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
BuildingUnit
mapBuildingUnit
(
BuildingUnit
gmlBU
){
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
BuildingUnit
bu
=
new
de
.
hft
.
stuttgart
.
citydoctor2
.
datastructure
.
BuildingUnit
();
bu
.
setGmlObject
(
gmlBU
);
mapAbstractSpace
(
gmlBU
,
bu
);
bu
.
unsetGmlGeometries
();
SurfaceMapper
surfaceMapper
=
new
SurfaceMapper
(
polygonMap
,
references
,
vertexMap
,
config
);
for
(
AbstractSpaceBoundaryProperty
surfaceProp
:
gmlBU
.
getBoundaries
())
{
if
(!
surfaceProp
.
isSetObject
())
{
continue
;
}
AbstractSpaceBoundary
surface
=
surfaceProp
.
getObject
();
surface
.
accept
(
surfaceMapper
);
}
for
(
BoundarySurface
bs
:
surfaceMapper
.
getSurfaces
())
{
bu
.
addBoundarySurface
(
bs
);
for
(
Geometry
geom
:
bs
.
getGeometries
())
{
for
(
Polygon
p
:
geom
.
getPolygons
())
{
p
.
setPartOfSurface
(
bs
);
}
}
}
return
bu
;
}
private
void
updatePartOfSurface
(
AbstractBuilding
cdBuilding
,
SurfaceMapper
surfaceMapper
)
{
private
void
updatePartOfSurface
(
AbstractBuilding
cdBuilding
,
SurfaceMapper
surfaceMapper
)
{
for
(
BoundarySurface
bs
:
surfaceMapper
.
getSurfaces
())
{
for
(
BoundarySurface
bs
:
surfaceMapper
.
getSurfaces
())
{
cdBuilding
.
addBoundarySurface
(
bs
);
cdBuilding
.
addBoundarySurface
(
bs
);
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
View file @
c949352d
...
@@ -433,6 +433,8 @@ public class CityDoctorController {
...
@@ -433,6 +433,8 @@ public class CityDoctorController {
createBuildingInstallationNodes
(
b
,
item
);
createBuildingInstallationNodes
(
b
,
item
);
createBuildingRoomNodes
(
b
,
item
);
createBuildingRoomNodes
(
b
,
item
);
createBuildingFurnitureNodes
(
b
,
item
);
createBuildingFurnitureNodes
(
b
,
item
);
createBuildingStoreyNodes
(
b
,
item
);
createBuildingUnitNodes
(
b
,
item
);
createBuildingPartNodes
(
b
,
item
);
createBuildingPartNodes
(
b
,
item
);
}
}
}
}
...
@@ -541,6 +543,43 @@ public class CityDoctorController {
...
@@ -541,6 +543,43 @@ public class CityDoctorController {
}
}
private
void
createBuildingStoreyNodes
(
Building
ab
,
TreeItem
<
Renderable
>
root
){
List
<
Storey
>
storeys
=
ab
.
getBuildingStoreys
();
if
(
storeys
.
isEmpty
())
{
return
;
}
AllStoreysNode
allSNode
=
new
AllStoreysNode
(
storeys
);
TreeItem
<
Renderable
>
allSNodeTextItem
=
new
TreeItem
<>(
allSNode
);
root
.
getChildren
().
add
(
allSNodeTextItem
);
for
(
Storey
storey
:
storeys
)
{
StoreyNode
storeyNode
=
new
StoreyNode
(
storey
);
TreeItem
<
Renderable
>
storeyNodeTextItem
=
new
TreeItem
<>(
storeyNode
);
storeyNodeTextItem
.
setExpanded
(
true
);
allSNodeTextItem
.
getChildren
().
add
(
storeyNodeTextItem
);
createGeometryNodes
(
storey
,
storeyNodeTextItem
);
createBoundarySurfaceNodes
(
storey
.
getBoundarySurfaces
(),
storeyNodeTextItem
);
}
}
public
void
createBuildingUnitNodes
(
Building
ab
,
TreeItem
<
Renderable
>
root
)
{
List
<
BuildingUnit
>
buildingUnits
=
ab
.
getBuildingUnits
();
if
(
buildingUnits
.
isEmpty
())
{
return
;
}
AllBuildingUnitsNode
allSNode
=
new
AllBuildingUnitsNode
(
buildingUnits
);
TreeItem
<
Renderable
>
allSNodeTextItem
=
new
TreeItem
<>(
allSNode
);
root
.
getChildren
().
add
(
allSNodeTextItem
);
for
(
BuildingUnit
buildingUnit
:
buildingUnits
)
{
BuildingUnitNode
buildingUnitNode
=
new
BuildingUnitNode
(
buildingUnit
);
TreeItem
<
Renderable
>
storeyNodeTextItem
=
new
TreeItem
<>(
buildingUnitNode
);
storeyNodeTextItem
.
setExpanded
(
true
);
allSNodeTextItem
.
getChildren
().
add
(
storeyNodeTextItem
);
createGeometryNodes
(
buildingUnit
,
storeyNodeTextItem
);
createBoundarySurfaceNodes
(
buildingUnit
.
getBoundarySurfaces
(),
storeyNodeTextItem
);
}
}
private
void
createBuildingFurnitureNodes
(
Building
ab
,
TreeItem
<
Renderable
>
root
)
{
private
void
createBuildingFurnitureNodes
(
Building
ab
,
TreeItem
<
Renderable
>
root
)
{
createFurnitureNodes
(
ab
.
getBuildingRoomFurnitureList
(),
root
);
createFurnitureNodes
(
ab
.
getBuildingRoomFurnitureList
(),
root
);
}
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java
View file @
c949352d
...
@@ -288,6 +288,56 @@ public class Renderer {
...
@@ -288,6 +288,56 @@ public class Renderer {
return
polygons
;
return
polygons
;
}
}
public
void
render
(
Storey
storey
){
refresher
=
()
->
{
Set
<
ConcretePolygon
>
setupStoreyPolygons
=
setupStoreyPolygons
(
storey
);
mainWindow
.
zoomOutForBoundingBox
(
BoundingBox
.
of
(
setupStoreyPolygons
));
render
(
setupStoreyPolygons
);
Platform
.
runLater
(()
->
{
errorUpdater
=
()
->
displayErrors
(
storey
);
errorUpdater
.
run
();
});
};
refresher
.
run
();
}
public
Set
<
ConcretePolygon
>
setupStoreyPolygons
(
Storey
storey
)
{
Set
<
ConcretePolygon
>
polygons
=
new
HashSet
<>();
addPolygons
(
storey
,
polygons
);
for
(
BoundarySurface
bs
:
storey
.
getBoundarySurfaces
())
{
addPolygons
(
bs
,
polygons
);
for
(
Opening
op
:
bs
.
getOpenings
())
{
addPolygons
(
op
,
polygons
);
}
}
return
polygons
;
}
public
void
render
(
BuildingUnit
buildingUnit
){
refresher
=
()
->
{
Set
<
ConcretePolygon
>
setupBuildingUnitPolgons
=
setupBuildingUnitPolygons
(
buildingUnit
);
mainWindow
.
zoomOutForBoundingBox
(
BoundingBox
.
of
(
setupBuildingUnitPolgons
));
render
(
setupBuildingUnitPolgons
);
Platform
.
runLater
(()
->
{
errorUpdater
=
()
->
displayErrors
(
buildingUnit
);
errorUpdater
.
run
();
});
};
refresher
.
run
();
}
public
Set
<
ConcretePolygon
>
setupBuildingUnitPolygons
(
BuildingUnit
buildingUnit
)
{
Set
<
ConcretePolygon
>
polygons
=
new
HashSet
<>();
addPolygons
(
buildingUnit
,
polygons
);
for
(
BoundarySurface
bs
:
buildingUnit
.
getBoundarySurfaces
())
{
addPolygons
(
bs
,
polygons
);
for
(
Opening
op
:
bs
.
getOpenings
())
{
addPolygons
(
op
,
polygons
);
}
}
return
polygons
;
}
public
void
render
(
BridgeObject
bridge
)
{
public
void
render
(
BridgeObject
bridge
)
{
refresher
=
()
->
{
refresher
=
()
->
{
Set
<
ConcretePolygon
>
setupBridgePolygons
=
setupBridgePolygons
(
bridge
);
Set
<
ConcretePolygon
>
setupBridgePolygons
=
setupBridgePolygons
(
bridge
);
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingUnitsNode.java
0 → 100644
View file @
c949352d
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.BuildingUnit
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
java.util.List
;
public
class
AllBuildingUnitsNode
extends
Renderable
{
private
final
List
<
BuildingUnit
>
buildingUnits
;
public
AllBuildingUnitsNode
(
List
<
BuildingUnit
>
buildingUnits
)
{
this
.
buildingUnits
=
buildingUnits
;
}
@Override
public
String
getText
()
{
return
"Building Units"
;
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
clearCurrentRender
();
}
@Override
public
void
refreshTextColor
()
{
boolean
wasChecked
=
false
;
for
(
BuildingUnit
buildingUnit
:
buildingUnits
)
{
if
(
buildingUnit
.
isValidated
())
{
wasChecked
=
true
;
if
(
buildingUnit
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
return
;
}
}
}
if
(
wasChecked
)
{
setStatus
(
CheckStatus
.
OK
);
}
else
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllStoreysNode.java
0 → 100644
View file @
c949352d
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.Storey
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
java.util.List
;
public
class
AllStoreysNode
extends
Renderable
{
private
final
List
<
Storey
>
storeys
;
public
AllStoreysNode
(
List
<
Storey
>
storeys
)
{
this
.
storeys
=
storeys
;
}
@Override
public
String
getText
()
{
return
"Building Storeys"
;
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
clearCurrentRender
();
}
@Override
public
void
refreshTextColor
()
{
boolean
wasChecked
=
false
;
for
(
Storey
storey
:
storeys
)
{
if
(
storey
.
isValidated
())
{
wasChecked
=
true
;
if
(
storey
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
return
;
}
}
}
if
(
wasChecked
)
{
setStatus
(
CheckStatus
.
OK
);
}
else
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingUnitNode.java
0 → 100644
View file @
c949352d
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.BuildingUnit
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
BuildingUnitNode
extends
Renderable
{
private
final
BuildingUnit
buildingUnit
;
public
BuildingUnitNode
(
BuildingUnit
buildingUnit
)
{
this
.
buildingUnit
=
buildingUnit
;
}
@Override
public
String
getText
()
{
return
buildingUnit
.
getGmlId
().
getGmlString
();
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
buildingUnit
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
buildingUnit
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
buildingUnit
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/StoreyNode.java
0 → 100644
View file @
c949352d
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.Storey
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
StoreyNode
extends
Renderable
{
private
final
Storey
storey
;
public
StoreyNode
(
Storey
storey
)
{
this
.
storey
=
storey
;
}
@Override
public
String
getText
()
{
return
storey
.
getGmlId
().
getGmlString
();
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
storey
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
storey
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
storey
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
}
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