diff --git a/IO/IniFileParser.cpp b/IO/IniFileParser.cpp index 3f15db36855231d186493fbb37ae1b00cd398007..d6150e622799d931b494ae17378903fd01e12b24 100644 --- a/IO/IniFileParser.cpp +++ b/IO/IniFileParser.cpp @@ -1163,6 +1163,15 @@ bool IniFileParser::ParseFfRouterOps(TiXmlNode* routingNode, RoutingStrategy s) } } } + _config->set_write_VTK_files(false); + if (routingNode->FirstChild("parameters")) { + TiXmlNode* pParametersForAllFF = routingNode->FirstChild("parameters"); + if (pParametersForAllFF->FirstChild("write_VTK_files")) { + //remark: std::strcmp returns 0 if the strings are equal + bool tmp_write_VTK = !std::strcmp(pParametersForAllFF->FirstChild("write_VTK_files")->FirstChild()->Value(), "true"); + _config->set_write_VTK_files(tmp_write_VTK); + } + } FFRouter* r = static_cast<FFRouter*>(_config->GetRoutingEngine()->GetAvailableRouters().back()); diff --git a/general/Configuration.h b/general/Configuration.h index 4b5419ee0daf54494a4db325c2c53857186c1445..b523647b9addd4b0786c8e962bebae37aa1f7482 100644 --- a/general/Configuration.h +++ b/general/Configuration.h @@ -109,6 +109,7 @@ public: //ff router _has_specific_goals = false; + _write_VTK_files = false; } int GetSolver() const { return _solver; }; @@ -248,6 +249,10 @@ public: void set_has_specific_goals(bool has_specific_goals) { _has_specific_goals = has_specific_goals;} + void set_write_VTK_files(bool write_VTK_files) {_write_VTK_files = write_VTK_files;} + + bool get_write_VTK_files() const {return _write_VTK_files;} + const std::string& GetHostname() const { return _hostname; }; void SetHostname(std::string hostname) { _hostname = hostname; }; @@ -352,6 +357,7 @@ private: //ff router bool _has_specific_goals; + bool _write_VTK_files; std::string _hostname; std::string _trajectoriesFile; diff --git a/routing/ff_router/ffRouter.cpp b/routing/ff_router/ffRouter.cpp index 5d8f3b5c0bce5060f3e0ed8764d906211710d61e..580da024400398ee9465fd02a0fe2e0934f8c709 100644 --- a/routing/ff_router/ffRouter.cpp +++ b/routing/ff_router/ffRouter.cpp @@ -314,12 +314,14 @@ bool FFRouter::Init(Building* building) //int transTest = (building->GetRoom(roomTest)->GetAllTransitionsIDs())[0]; //auto test = _CroTrByUID.at(1253); -// for (unsigned int i = 0; i < _locffviafm.size(); ++i) { -// auto iter = _locffviafm.begin(); -// std::advance(iter, i); -// int roomNr = iter->first; -// iter->second->writeFF("testFF" + std::to_string(roomNr) + ".vtk", _allDoorUIDs); -// } + if (_config->get_write_VTK_files()) { + for (unsigned int i = 0; i < _locffviafm.size(); ++i) { + auto iter = _locffviafm.begin(); + std::advance(iter, i); + int roomNr = iter->first; + iter->second->writeFF("ffrouterOfRoom" + std::to_string(roomNr) + ".vtk", _allDoorUIDs); + } + } // std::ofstream matrixfile; // matrixfile.open("Matrix.txt");