NodeMap values are now visualizable. Todo: default map-values
6 #include <all_include.h>
8 ///Class MapStorage is responsible for storing
9 ///NodeMaps and EdgeMaps that can be shown later
10 ///on GUI. Therefore maps can be added to it,
11 ///and datas over the added maps can be queried.
12 ///The maps will be stored in an std::map,
13 ///referenced with their names. Unfortunately at
14 ///the moment it works only with double type maps
16 ///\todo too many things are public!!
23 ///Stores double type NodeMaps
24 std::map< std::string,Graph::NodeMap<double> * > nodemap_storage;
26 ///Stores double type EdgeMaps
27 std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage;
29 //Stores the default values for the different visualization node attributes
30 std::vector<Graph::NodeMap<double> > default_nodemaps;
32 //Stores the default values for the different visualization edge attributes
33 std::vector<Graph::EdgeMap<double> > default_edgemaps;
36 ///Constructor of MapStorage. Expects the Graph of
37 ///which maps will be stored in it.
38 ///Its all activity is initializing default values
39 ///for different visualization attributes
41 ///\param graph is the graph for which the maps are stored in this object.
44 ///Adds given map to storage. A name and the map itself has to be provided.
45 ///\param name is the name of map
46 ///\nodemap is the pointer of the given nodemap
47 ///\todo map should be given by reference!
48 int addNodeMap(const std::string &,Graph::NodeMap<double> *);
50 ///Adds given map to storage. A name and the map itself has to be provided.
51 ///\param name is the name of map
52 ///\edgemap is the pointer of the given edgemap
53 ///\todo map should be given by reference!
54 int addEdgeMap(const std::string &,Graph::EdgeMap<double> *);
56 ///Returns how much nodemaps is stored in \ref MapStorage
57 int numOfNodeMaps() {return nodemap_storage.size();};
59 ///Returns how much edgemaps is stored in \ref MapStorage
60 int numOfEdgeMaps() {return edgemap_storage.size();};
62 ///Returns the maximum value of the given NodeMap. NodeMap has to be given by its name.
63 ///\param name is the name of map of which maximum is searched
64 double maxOfNodeMap(const std::string &);
66 ///Returns the maximum value of the given EdgeMap. EdgeMap has to be given by its name.
67 ///\param name is the name of map of which maximum is searched
68 double maxOfEdgeMap(const std::string &);
70 ///Returns the minimum value of the given NodeMap. NodeMap has to be given by its name.
71 ///\param name is the name of map of which minimum is searched
72 double minOfNodeMap(const std::string &);
74 ///Returns the minimum value of the given EdgeMap. EdgeMap has to be given by its name.
75 ///\param name is the name of map of which minimum is searched
76 double minOfEdgeMap(const std::string &);
78 ///To be able to iterate through each maps this function returns an iterator pointing to the first nodemap in the storage.
79 std::map< std::string,Graph::NodeMap<double> * >::iterator beginOfNodeMaps(){return nodemap_storage.begin();};
81 ///To be able to iterate through each maps this function returns an iterator pointing to the first edgemap in the storage.
82 std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();};
84 ///This function sets a default base value for the newly created node
85 void init_maps_for_node(NodeIt);
87 ///This function sets a default base value for the newly created node
88 void init_maps_for_edge(Graph::Edge);