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
72588314
Commit
72588314
authored
Oct 24, 2024
by
Riegel
Browse files
Add button to hide roofs in Object view
parent
bcff1333
Pipeline
#10284
failed with stage
in 34 seconds
Changes
8
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/resources/CityDoctorLocalization.properties
View file @
72588314
...
@@ -31,6 +31,7 @@ MainToolBar.writeReports=Write Reports
...
@@ -31,6 +31,7 @@ MainToolBar.writeReports=Write Reports
MainToolBar.executeChecks
=
Execute Checks
MainToolBar.executeChecks
=
Execute Checks
MainToolBar.showWorld
=
Show entire city model
MainToolBar.showWorld
=
Show entire city model
MainToolBar.resetCamera
=
Reset view
MainToolBar.resetCamera
=
Reset view
MainToolBar.hideRoof
=
Show/Hide roofs in object view
MainWindow.missingConfig
=
Could not find configuration file.
MainWindow.missingConfig
=
Could not find configuration file.
MainWindow.loadGivenFile
=
Loading given file, please wait
MainWindow.loadGivenFile
=
Loading given file, please wait
MainWindow.finishedLoading
=
Finished loading
MainWindow.finishedLoading
=
Finished loading
...
...
CityDoctorParent/CityDoctorModel/src/main/resources/CityDoctorLocalization_de.properties
View file @
72588314
...
@@ -29,6 +29,7 @@ MainToolBar.writeReports=Schreibe Reports
...
@@ -29,6 +29,7 @@ MainToolBar.writeReports=Schreibe Reports
MainToolBar.executeChecks
=
F
\u
00fchre Pr
\u
00fcfungen aus
MainToolBar.executeChecks
=
F
\u
00fchre Pr
\u
00fcfungen aus
MainToolBar.showWorld
=
Gesamtes Stadtmodell anzeigen
MainToolBar.showWorld
=
Gesamtes Stadtmodell anzeigen
MainToolBar.resetCamera
=
Ansicht zur
\u
00fccksetzen
MainToolBar.resetCamera
=
Ansicht zur
\u
00fccksetzen
MainToolBar.hideRoof
=
Zeige/Verstecke D
\u
00e4cher in Objektansicht
MainWindow.missingConfig
=
Konnte Konfigurationsdatei nicht finden.
MainWindow.missingConfig
=
Konnte Konfigurationsdatei nicht finden.
MainWindow.loadGivenFile
=
Lade vorhandene Datei, bitte warten
MainWindow.loadGivenFile
=
Lade vorhandene Datei, bitte warten
MainWindow.finishedLoading
=
Fertig geladen
MainWindow.finishedLoading
=
Fertig geladen
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
View file @
72588314
...
@@ -139,6 +139,7 @@ public class CityDoctorController {
...
@@ -139,6 +139,7 @@ public class CityDoctorController {
mainWindow
.
getWorldBtn
().
setDisable
(
false
);
mainWindow
.
getWorldBtn
().
setDisable
(
false
);
mainWindow
.
getSaveBtn
().
setDisable
(
false
);
mainWindow
.
getSaveBtn
().
setDisable
(
false
);
mainWindow
.
getResetCameraBtn
().
setDisable
(
false
);
mainWindow
.
getResetCameraBtn
().
setDisable
(
false
);
mainWindow
.
getHideRoofBtn
().
setDisable
(
false
);
mainWindow
.
getNorthArrow
().
setVisible
(
true
);
mainWindow
.
getNorthArrow
().
setVisible
(
true
);
mainWindow
.
alignNorthArrow
();
mainWindow
.
alignNorthArrow
();
setupFeatureTabs
();
setupFeatureTabs
();
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainToolBar.java
View file @
72588314
...
@@ -49,6 +49,12 @@ public class MainToolBar {
...
@@ -49,6 +49,12 @@ public class MainToolBar {
@FXML
@FXML
private
ImageView
showWorldImageView
;
private
ImageView
showWorldImageView
;
@FXML
private
ToggleButton
hideRoofBtn
;
@FXML
private
ImageView
hideRoofView
;
@FXML
@FXML
private
Button
resetCameraBtn
;
private
Button
resetCameraBtn
;
...
@@ -146,6 +152,7 @@ public class MainToolBar {
...
@@ -146,6 +152,7 @@ public class MainToolBar {
setupAboutButton
();
setupAboutButton
();
setupReportButton
();
setupReportButton
();
setupResetCameraButton
();
setupResetCameraButton
();
setupHideRoofButton
();
loadImages
();
loadImages
();
gridButton
.
setOnAction
(
ae
->
renderer
.
showWireFrame
(
gridButton
.
isSelected
()));
gridButton
.
setOnAction
(
ae
->
renderer
.
showWireFrame
(
gridButton
.
isSelected
()));
...
@@ -219,6 +226,10 @@ public class MainToolBar {
...
@@ -219,6 +226,10 @@ public class MainToolBar {
Image
img
=
new
Image
(
inStream
);
Image
img
=
new
Image
(
inStream
);
resetCameraView
.
setImage
(
img
);
resetCameraView
.
setImage
(
img
);
}
}
try
(
InputStream
inStream
=
MainWindow
.
class
.
getResourceAsStream
(
"icons/hide_roof.png"
))
{
Image
img
=
new
Image
(
inStream
);
hideRoofView
.
setImage
(
img
);
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
// ignore close exception
// ignore close exception
}
}
...
@@ -316,6 +327,19 @@ public class MainToolBar {
...
@@ -316,6 +327,19 @@ public class MainToolBar {
}
}
private
void
setupHideRoofButton
()
{
hideRoofBtn
.
setDisable
(
true
);
hideRoofBtn
.
setSelected
(
false
);
hideRoofBtn
.
setTooltip
(
new
Tooltip
(
Localization
.
getText
(
"MainToolBar.hideRoof"
)));
hideRoofBtn
.
setOnAction
(
ae
->
{
if
(
hideRoofBtn
.
isSelected
())
{
renderer
.
hideRoofs
();
}
else
{
renderer
.
showRoofs
();
}});
}
public
Button
getCheckButton
()
{
public
Button
getCheckButton
()
{
return
checkBtn
;
return
checkBtn
;
}
}
...
@@ -352,6 +376,10 @@ public class MainToolBar {
...
@@ -352,6 +376,10 @@ public class MainToolBar {
return
lod4Btn
;
return
lod4Btn
;
}
}
public
ToggleButton
getHideRoofBtn
(){
return
hideRoofBtn
;
}
public
Button
getWorldBtn
()
{
public
Button
getWorldBtn
()
{
return
showWorldBtn
;
return
showWorldBtn
;
}
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java
View file @
72588314
...
@@ -1096,6 +1096,10 @@ public class MainWindow extends Application {
...
@@ -1096,6 +1096,10 @@ public class MainWindow extends Application {
return
mainToolBar
.
getResetCameraBtn
();
return
mainToolBar
.
getResetCameraBtn
();
}
}
public
ToggleButton
getHideRoofBtn
(){
return
mainToolBar
.
getHideRoofBtn
();
}
public
ImageView
getNorthArrow
(){
public
ImageView
getNorthArrow
(){
return
northArrow
;
return
northArrow
;
}
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java
View file @
72588314
...
@@ -45,7 +45,7 @@ public class Renderer {
...
@@ -45,7 +45,7 @@ public class Renderer {
private
LoadingInfoDialog
loadingDialog
;
private
LoadingInfoDialog
loadingDialog
;
private
List
<
ViewFilter
>
lodFilters
=
new
ArrayList
<>();
private
List
<
ViewFilter
>
lodFilters
=
new
ArrayList
<>();
private
ViewFilter
roofFilter
;
private
Runnable
refresher
;
private
Runnable
refresher
;
private
Runnable
errorUpdater
;
private
Runnable
errorUpdater
;
...
@@ -97,6 +97,25 @@ public class Renderer {
...
@@ -97,6 +97,25 @@ public class Renderer {
return
geom
.
getLod
()
==
Lod
.
LOD4
;
return
geom
.
getLod
()
==
Lod
.
LOD4
;
}
}
});
});
roofFilter
=
new
ViewFilter
()
{
@Override
public
boolean
allowedToUse
(
CityObject
co
,
Geometry
geom
){
if
(!
this
.
isEnabled
()){
return
true
;
}
return
this
.
useGeometry
(
co
,
geom
);
}
@Override
public
boolean
useGeometry
(
CityObject
co
,
Geometry
geom
)
{
if
(
co
instanceof
BoundarySurface
bs
){
return
bs
.
getType
()
!=
BoundarySurfaceType
.
ROOF
;
}
return
true
;
}
};
roofFilter
.
setEnable
(
false
);
}
}
public
void
enableLod1
()
{
public
void
enableLod1
()
{
...
@@ -155,6 +174,20 @@ public class Renderer {
...
@@ -155,6 +174,20 @@ public class Renderer {
}
}
}
}
public
void
hideRoofs
(){
roofFilter
.
setEnable
(
true
);
if
(
refresher
!=
null
)
{
refresher
.
run
();
}
}
public
void
showRoofs
(){
roofFilter
.
setEnable
(
false
);
if
(
refresher
!=
null
)
{
refresher
.
run
();
}
}
public
void
render
(
Building
building
)
{
public
void
render
(
Building
building
)
{
refresher
=
()
->
{
refresher
=
()
->
{
Set
<
ConcretePolygon
>
setupBuildingPolygons
=
setupBuildingPolygons
(
building
);
Set
<
ConcretePolygon
>
setupBuildingPolygons
=
setupBuildingPolygons
(
building
);
...
@@ -581,7 +614,9 @@ public class Renderer {
...
@@ -581,7 +614,9 @@ public class Renderer {
}
}
}
}
if
(
used
)
{
if
(
used
)
{
addConcretePolygons
(
polygons
,
geom
);
if
(
roofFilter
.
allowedToUse
(
co
,
geom
))
{
addConcretePolygons
(
polygons
,
geom
);
}
}
}
}
}
}
}
...
@@ -942,6 +977,8 @@ public class Renderer {
...
@@ -942,6 +977,8 @@ public class Renderer {
private
void
addConcretePolygons
(
Set
<
ConcretePolygon
>
polygons
,
Geometry
geom
)
{
private
void
addConcretePolygons
(
Set
<
ConcretePolygon
>
polygons
,
Geometry
geom
)
{
for
(
Polygon
p
:
geom
.
getPolygons
())
{
for
(
Polygon
p
:
geom
.
getPolygons
())
{
if
(
p
.
getOriginal
().
getPartOfSurface
()
!=
null
&&
!
roofFilter
.
allowedToUse
(
p
.
getOriginal
().
getPartOfSurface
(),
p
.
getParent
()))
continue
;
polygons
.
add
(
p
.
getOriginal
());
polygons
.
add
(
p
.
getOriginal
());
}
}
}
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainToolBar.fxml
View file @
72588314
...
@@ -36,6 +36,11 @@
...
@@ -36,6 +36,11 @@
<ImageView
fx:id=
"cullingImageView"
fitHeight=
"32.0"
fitWidth=
"32.0"
pickOnBounds=
"true"
preserveRatio=
"true"
/>
<ImageView
fx:id=
"cullingImageView"
fitHeight=
"32.0"
fitWidth=
"32.0"
pickOnBounds=
"true"
preserveRatio=
"true"
/>
</graphic>
</graphic>
</ToggleButton>
</ToggleButton>
<ToggleButton
fx:id=
"hideRoofBtn"
disable=
"true"
layoutX=
"222.0"
layoutY=
"10.0"
mnemonicParsing=
"false"
selected=
"true"
>
<graphic>
<ImageView
fx:id=
"hideRoofView"
fitHeight=
"32.0"
fitWidth=
"32.0"
pickOnBounds=
"true"
preserveRatio=
"true"
/>
</graphic>
</ToggleButton>
<Separator
orientation=
"VERTICAL"
/>
<Separator
orientation=
"VERTICAL"
/>
<Button
id=
"loadBtn"
fx:id=
"showWorldBtn"
disable=
"true"
mnemonicParsing=
"false"
>
<Button
id=
"loadBtn"
fx:id=
"showWorldBtn"
disable=
"true"
mnemonicParsing=
"false"
>
<graphic>
<graphic>
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/hide_roof.png
0 → 100644
View file @
72588314
879 Bytes
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