COIN-OR::LEMON - Graph Library

source: lemon-0.x/gui/mapstorage.h @ 1579:ed7da82bbecf

Last change on this file since 1579:ed7da82bbecf was 1525:6d94de269ab1, checked in by Hegyi Péter, 15 years ago

Uh, long comment arrives... Zoom update does not happen after editorial steps. Nodes initial color is light blue, if there is any item under them. Strange node-text relations disappeared. Initial values of new items are given now in a more common way. The wood-cutter way of handling default values of properties is now changed.

File size: 4.0 KB
Line 
1// -*- C++ -*- //
2
3#ifndef MAPSTORAGE_H
4#define MAPSTORAGE_H
5
6#include <all_include.h>
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!!
17class MapStorage
18{
19public:
20
21  Graph &g;
22
23  ///Stores double type NodeMaps
24  std::map< std::string,Graph::NodeMap<double> * > nodemap_storage;
25
26  ///Stores double type EdgeMaps
27  std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage;
28
29  //Stores the default values for the different visualization node attributes
30  std::vector<Graph::NodeMap<double> > default_nodemaps;
31
32  //Stores the default values for the different visualization edge attributes
33  std::vector<Graph::EdgeMap<double> > default_edgemaps;
34
35public:
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.
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!
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!
54  int addEdgeMap(const std::string &,Graph::EdgeMap<double> *);
55
56  ///Returns how much nodemaps is stored in \ref MapStorage
57  int numOfNodeMaps() {return nodemap_storage.size();};
58
59  ///Returns how much edgemaps is stored in \ref MapStorage
60  int numOfEdgeMaps() {return edgemap_storage.size();};
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
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
68  double maxOfEdgeMap(const std::string &);
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
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
76  double minOfEdgeMap(const std::string &);
77
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();};
80
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();};
83
84  ///To be able to iterate through each maps this function returns an iterator pointing to the last nodemap in the storage.
85  std::map< std::string,Graph::NodeMap<double> * >::iterator endOfNodeMaps(){return nodemap_storage.end();};
86
87  ///To be able to iterate through each maps this function returns an iterator pointing to the last edgemap in the storage.
88  std::map< std::string,Graph::EdgeMap<double> * >::iterator endOfEdgeMaps(){return edgemap_storage.end();};
89
90  ///This function sets a default base value for the newly created node
91  void initMapsForNode(NodeIt);
92
93  ///This function sets a default base value for the newly created node
94  void initMapsForEdge(Graph::Edge);
95};
96
97#endif //MAPSTORAGE_H
Note: See TracBrowser for help on using the repository browser.