3 #ifndef MAPSTORAGE_H |
3 #ifndef MAPSTORAGE_H |
4 #define MAPSTORAGE_H |
4 #define MAPSTORAGE_H |
5 |
5 |
6 #include <all_include.h> |
6 #include <all_include.h> |
7 |
7 |
|
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 |
|
15 /// |
|
16 ///\todo too many things are public!! |
8 class MapStorage |
17 class MapStorage |
9 { |
18 { |
|
19 public: |
10 |
20 |
11 public: ///!!!!!!!! |
|
12 Graph g; |
21 Graph g; |
|
22 |
|
23 ///Stores double type NodeMaps |
13 std::map< std::string,Graph::NodeMap<double> * > nodemap_storage; |
24 std::map< std::string,Graph::NodeMap<double> * > nodemap_storage; |
|
25 |
|
26 ///Stores double type EdgeMaps |
14 std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage; |
27 std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage; |
15 |
28 |
|
29 //Stores the default values for the different visualization node attributes |
16 std::vector<Graph::NodeMap<double> > default_nodemaps; |
30 std::vector<Graph::NodeMap<double> > default_nodemaps; |
|
31 |
|
32 //Stores the default values for the different visualization edge attributes |
17 std::vector<Graph::EdgeMap<double> > default_edgemaps; |
33 std::vector<Graph::EdgeMap<double> > default_edgemaps; |
18 |
34 |
19 public: |
35 public: |
|
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 |
|
40 /// |
|
41 ///\param graph is the graph for which the maps are stored in this object. |
20 MapStorage(Graph &); |
42 MapStorage(Graph &); |
|
43 |
|
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! |
21 int addNodeMap(const std::string &,Graph::NodeMap<double> *); |
48 int addNodeMap(const std::string &,Graph::NodeMap<double> *); |
|
49 |
|
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! |
22 int addEdgeMap(const std::string &,Graph::EdgeMap<double> *); |
54 int addEdgeMap(const std::string &,Graph::EdgeMap<double> *); |
23 |
55 |
|
56 ///Returns how much nodemaps is stored in \ref MapStorage |
24 int numOfNodeMaps() {return nodemap_storage.size();}; |
57 int numOfNodeMaps() {return nodemap_storage.size();}; |
|
58 |
|
59 ///Returns how much edgemaps is stored in \ref MapStorage |
25 int numOfEdgeMaps() {return edgemap_storage.size();}; |
60 int numOfEdgeMaps() {return edgemap_storage.size();}; |
26 |
61 |
|
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 |
27 double maxOfNodeMap(const std::string &); |
64 double maxOfNodeMap(const std::string &); |
|
65 |
|
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 |
28 double maxOfEdgeMap(const std::string &); |
68 double maxOfEdgeMap(const std::string &); |
29 |
69 |
|
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 |
30 double minOfNodeMap(const std::string &); |
72 double minOfNodeMap(const std::string &); |
|
73 |
|
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 |
31 double minOfEdgeMap(const std::string &); |
76 double minOfEdgeMap(const std::string &); |
32 |
77 |
|
78 ///To be able to iterate through each maps this function returns an iterator pointing to the first nodemap in the storage. |
33 std::map< std::string,Graph::NodeMap<double> * >::iterator beginOfNodeMaps(){return nodemap_storage.begin();}; |
79 std::map< std::string,Graph::NodeMap<double> * >::iterator beginOfNodeMaps(){return nodemap_storage.begin();}; |
|
80 |
|
81 ///To be able to iterate through each maps this function returns an iterator pointing to the first edgemap in the storage. |
34 std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();}; |
82 std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();}; |
35 }; |
83 }; |
36 |
84 |
37 #endif //MAPSTORAGE_H |
85 #endif //MAPSTORAGE_H |