Skip to content
Snippets Groups Projects
Commit 565f3521 authored by Ulrich Kemloh's avatar Ulrich Kemloh
Browse files

feature to individually change attribute of the geometry, e.g different floor...

feature to individually change attribute of the geometry, e.g different floor colors for different subrooms.
Only the elements (colors,visibilty,walls..) of the selected subrooms will be changed. First select the room/subroom in the geometry structure view
parent f316ae36
No related branches found
No related tags found
No related merge requests found
......@@ -161,8 +161,13 @@ void FacilityGeometry::CreateActors()
{
assembly3D->SetVisibility(status);
}
_visibility=status;
}
bool FacilityGeometry::getVisibility() const
{
return _visibility;
}
/***
* This is the main build method and should be called by all functions
* drawing a wall or a door. Important
......@@ -812,6 +817,10 @@ void FacilityGeometry::showFloor(bool status)
floorActor->SetVisibility(status);
}
void FacilityGeometry::showObstacles(bool status)
{
obstaclesActor->SetVisibility(status);
}
void FacilityGeometry::addObjectLabel(double center[3], double orientation[3], std::string caption, double color)
{
addNewElementText(center, orientation, caption, color);
......
......@@ -133,9 +133,11 @@ public:
void showWalls(bool status);
void showNavLines(bool status);
void showFloor(bool status);
void showObstacles(bool status);
void showGeometryLabels(int status);
void setVisibility(bool status);
bool getVisibility() const;
private:
......@@ -179,6 +181,7 @@ private:
vtkActor2DCollection* captions;
std::string _description;
bool _visibility=true;
};
#endif /* FACILITYGEOMETRY_H_ */
......@@ -28,10 +28,10 @@ void GeometryFactory::Set2D(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->set2D(status);
}
}
//Set3D(!status);
}
void GeometryFactory::Set3D(bool status)
......@@ -40,10 +40,10 @@ void GeometryFactory::Set3D(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->set3D(status);
}
}
//Set2D(!status);
}
void GeometryFactory::Clear()
......@@ -60,6 +60,7 @@ void GeometryFactory::ChangeWallsColor(double* color)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->changeWallsColor(color);
}
}
......@@ -71,6 +72,7 @@ void GeometryFactory::ChangeExitsColor(double* color)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->changeExitsColor(color);
}
}
......@@ -82,6 +84,7 @@ void GeometryFactory::ChangeNavLinesColor(double* color)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->changeNavLinesColor(color);
}
}
......@@ -93,6 +96,7 @@ void GeometryFactory::ChangeFloorColor(double* color)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->changeFloorColor(color);
}
}
......@@ -104,6 +108,7 @@ void GeometryFactory::ChangeObstaclesColor(double* color)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->changeObstaclesColor(color);
}
}
......@@ -115,6 +120,7 @@ void GeometryFactory::ShowDoors(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showDoors(status);
}
}
......@@ -126,6 +132,7 @@ void GeometryFactory::ShowStairs(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showStairs(status);
}
}
......@@ -137,6 +144,7 @@ void GeometryFactory::ShowWalls(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showWalls(status);
}
}
......@@ -148,6 +156,7 @@ void GeometryFactory::ShowNavLines(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showNavLines(status);
}
}
......@@ -159,10 +168,22 @@ void GeometryFactory::ShowFloor(bool status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showFloor(status);
}
}
}
void GeometryFactory::ShowObstacles(bool status)
{
for (auto&& room: _geometryFactory)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showObstacles(status);
}
}
}
void GeometryFactory::ShowGeometryLabels(int status)
{
......@@ -170,6 +191,7 @@ void GeometryFactory::ShowGeometryLabels(int status)
{
for(auto&& subroom:room.second)
{
if(_geometryFactory[room.first][subroom.first]->getVisibility())
subroom.second->showGeometryLabels(status);
}
}
......@@ -228,7 +250,6 @@ const std::map<int , std::map<int, std::shared_ptr<FacilityGeometry> > > & Geome
void GeometryFactory::AddElement(int room, int subroom, std::shared_ptr<FacilityGeometry> geo)
{
//_geometryFactory.insert({room,{subroom,geo}});
_geometryFactory[room][subroom]=geo;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment