mapstorage.h
branchgui
changeset 4 e099638ff236
parent 1 c69fedfbb9b3
child 6 603b85626bc0
equal deleted inserted replaced
0:bb3199ab93b4 1:0512f5dec35e
     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