Loading src/topo/Graph.hpp +2 −0 Original line number Diff line number Diff line Loading @@ -32,8 +32,10 @@ #include <lemon/list_graph.h> #include <memory> #include <list> typedef lemon::ListGraph Graph; typedef std::list<Graph::Edge> EdgeList; typedef std::shared_ptr<Graph> Graph_Ptr; #endif src/topo/base_topo/BetaSkeletonFilter.cpp +5 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include "geo/GeometricHelpers.hpp" #include "geo/SeaCableLandingPoint.hpp" #include "geo/SeaCableNode.hpp" #include "topo/Graph.hpp" #include "util/Util.hpp" #include <cassert> #include <cmath> Loading @@ -60,15 +61,14 @@ BetaSkeletonFilter::~BetaSkeletonFilter() { void BetaSkeletonFilter::generalGabrielFilter() { using namespace lemon; typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; for (Graph::EdgeIt edge(*_graph); edge != lemon::INVALID; ++edge) { if (edge != INVALID && !isBetaSkeletonEdgeGreaterEqualThanOne(edge, 1.0)) edges_to_delete.push_back(edge); } for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) _graph->erase(*edge); } Loading @@ -89,8 +89,7 @@ void BetaSkeletonFilter::perCountryBetaFilter() { } // create work items typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; std::list<std::pair<Graph::Node, Graph::Node>> edges_to_add; std::unique_ptr<Config> config(new Config); Loading Loading @@ -132,7 +131,7 @@ void BetaSkeletonFilter::perCountryBetaFilter() { _graph->addEdge(pair.first, pair.second); // erase edges for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) _graph->erase(*edge); } Loading @@ -140,8 +139,6 @@ void BetaSkeletonFilter::filterBetaSkeletonEdges() { // create global gabriel graph generalGabrielFilter(); // ------------------------------------------------------------------------- // per country filtering with beta skeleton perCountryBetaFilter(); } Loading src/topo/base_topo/PopulationDensityFilter.cpp +5 −7 Original line number Diff line number Diff line Loading @@ -38,11 +38,11 @@ #include "geo/GeometricHelpers.hpp" #include "geo/GeographicPosition.hpp" #include "geo/SeaCableLandingPoint.hpp" #include "topo/Graph.hpp" #include "util/Util.hpp" #include <algorithm> #include <cassert> #include <cmath> #include <lemon/list_graph.h> #include <numeric> PopulationDensityFilter::PopulationDensityFilter(BaseTopology_Ptr baseTopo) Loading @@ -62,8 +62,7 @@ void PopulationDensityFilter::filter(void) { // iterate over edges Graph& graph = *_baseTopo->getGraph(); auto& nodeGeoNodeMap = *_baseTopo->getNodeMap(); typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; auto isValidNode = [](GeographicNode_Ptr& ptr) -> bool { CityNode* n1 = dynamic_cast<CityNode*>(ptr.get()); Loading Loading @@ -133,7 +132,7 @@ void PopulationDensityFilter::filter(void) { BOOST_LOG_TRIVIAL(info) << edges_to_delete.size() << " edges deleted by population density filter"; for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) graph.erase(*edge); } Loading @@ -148,8 +147,7 @@ void PopulationDensityFilter::filterByLength(void) { // iterate over edges Graph& graph = *_baseTopo->getGraph(); auto& nodeGeoNodeMap = *_baseTopo->getNodeMap(); typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; auto isValidNode = [](GeographicNode_Ptr& ptr) -> bool { CityNode* n1 = dynamic_cast<CityNode*>(ptr.get()); Loading Loading @@ -199,6 +197,6 @@ void PopulationDensityFilter::filterByLength(void) { } } // erase edges for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) graph.erase(*edge); } Loading
src/topo/Graph.hpp +2 −0 Original line number Diff line number Diff line Loading @@ -32,8 +32,10 @@ #include <lemon/list_graph.h> #include <memory> #include <list> typedef lemon::ListGraph Graph; typedef std::list<Graph::Edge> EdgeList; typedef std::shared_ptr<Graph> Graph_Ptr; #endif
src/topo/base_topo/BetaSkeletonFilter.cpp +5 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include "geo/GeometricHelpers.hpp" #include "geo/SeaCableLandingPoint.hpp" #include "geo/SeaCableNode.hpp" #include "topo/Graph.hpp" #include "util/Util.hpp" #include <cassert> #include <cmath> Loading @@ -60,15 +61,14 @@ BetaSkeletonFilter::~BetaSkeletonFilter() { void BetaSkeletonFilter::generalGabrielFilter() { using namespace lemon; typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; for (Graph::EdgeIt edge(*_graph); edge != lemon::INVALID; ++edge) { if (edge != INVALID && !isBetaSkeletonEdgeGreaterEqualThanOne(edge, 1.0)) edges_to_delete.push_back(edge); } for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) _graph->erase(*edge); } Loading @@ -89,8 +89,7 @@ void BetaSkeletonFilter::perCountryBetaFilter() { } // create work items typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; std::list<std::pair<Graph::Node, Graph::Node>> edges_to_add; std::unique_ptr<Config> config(new Config); Loading Loading @@ -132,7 +131,7 @@ void BetaSkeletonFilter::perCountryBetaFilter() { _graph->addEdge(pair.first, pair.second); // erase edges for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) _graph->erase(*edge); } Loading @@ -140,8 +139,6 @@ void BetaSkeletonFilter::filterBetaSkeletonEdges() { // create global gabriel graph generalGabrielFilter(); // ------------------------------------------------------------------------- // per country filtering with beta skeleton perCountryBetaFilter(); } Loading
src/topo/base_topo/PopulationDensityFilter.cpp +5 −7 Original line number Diff line number Diff line Loading @@ -38,11 +38,11 @@ #include "geo/GeometricHelpers.hpp" #include "geo/GeographicPosition.hpp" #include "geo/SeaCableLandingPoint.hpp" #include "topo/Graph.hpp" #include "util/Util.hpp" #include <algorithm> #include <cassert> #include <cmath> #include <lemon/list_graph.h> #include <numeric> PopulationDensityFilter::PopulationDensityFilter(BaseTopology_Ptr baseTopo) Loading @@ -62,8 +62,7 @@ void PopulationDensityFilter::filter(void) { // iterate over edges Graph& graph = *_baseTopo->getGraph(); auto& nodeGeoNodeMap = *_baseTopo->getNodeMap(); typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; auto isValidNode = [](GeographicNode_Ptr& ptr) -> bool { CityNode* n1 = dynamic_cast<CityNode*>(ptr.get()); Loading Loading @@ -133,7 +132,7 @@ void PopulationDensityFilter::filter(void) { BOOST_LOG_TRIVIAL(info) << edges_to_delete.size() << " edges deleted by population density filter"; for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) graph.erase(*edge); } Loading @@ -148,8 +147,7 @@ void PopulationDensityFilter::filterByLength(void) { // iterate over edges Graph& graph = *_baseTopo->getGraph(); auto& nodeGeoNodeMap = *_baseTopo->getNodeMap(); typedef std::list<Graph::Edge> Edgelist; Edgelist edges_to_delete; EdgeList edges_to_delete; auto isValidNode = [](GeographicNode_Ptr& ptr) -> bool { CityNode* n1 = dynamic_cast<CityNode*>(ptr.get()); Loading Loading @@ -199,6 +197,6 @@ void PopulationDensityFilter::filterByLength(void) { } } // erase edges for (Edgelist::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) for (EdgeList::iterator edge = edges_to_delete.begin(); edge != edges_to_delete.end(); ++edge) graph.erase(*edge); }