COIN-OR::LEMON - Graph Library

Changeset 118:cfd49e5c8723 in glemon-0.x for mapstorage.h


Ignore:
Timestamp:
01/10/06 16:15:57 (18 years ago)
Author:
Hegyi Péter
Branch:
gui
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2463
Message:

If default value of a new map is constant, the newly created elements will get that value as well. Documentation is added to BrokenEdge?, MapStorage? and GraphDisplazCanvas? classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mapstorage.h

    r111 r118  
    99#include "xymap.h"
    1010#include <libgnomecanvasmm.h>
     11
     12///class MapStorage handles NodeMaps and EdgeMaps.
    1113
    1214///Class MapStorage is responsible for storing
     
    2325public:
    2426
     27  ///The graph for which the datas are stored.
    2528  Graph graph;
    2629  /// the coordinates of the nodes
     
    2932  XYMap<Graph::EdgeMap<double> > arrow_pos;
    3033
     34  ///The content of the object has changed, update is needed.
    3135  bool modified;
     36
     37  ///Name of file loaded in object.
    3238  std::string file_name;
    3339
     
    3844  std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage;
    3945
    40   //Stores the default values for the different visualization node attributes
     46  ///Stores the default values for the different visualization node attributes
    4147  std::vector<Graph::NodeMap<double> > default_nodemaps;
    4248
    43   //Stores the default values for the different visualization edge attributes
     49  ///Stores the default values for the different visualization edge attributes
    4450  std::vector<Graph::EdgeMap<double> > default_edgemaps;
    4551
    46   //Stores the active maps for the different visualization node attributes
     52  ///Stores the active maps for the different visualization node attributes
    4753  std::vector< std::string > active_nodemaps;
    4854
    49   //Stores the active maps for the different visualization edge attributes
     55  /// Stores the active maps for the different visualization edge attributes
    5056  std::vector< std::string > active_edgemaps;
    5157
    52   // Default values for the maps
     58  /// Default values for the maps
    5359  std::map< std::string, double > nodemap_default;
    5460
    55   // Default values for the maps
     61  /// Default values for the maps
    5662  std::map< std::string, double > edgemap_default;
    5763
     
    5965
    6066protected:
     67  /// type of the signal emitted if the visualization of the maps might have to be updated.
     68
     69  /// bool shows us whether the changed map is edge or nodemap.
     70  /// int tells us the refreshed property
    6171  typedef sigc::signal<void, bool, int> Signal_Prop;
     72
     73  /// Signal emitted on any change made on map values
    6274  Signal_Prop signal_prop;
     75
     76  /// Signal emitted in the case of nodemap addition
     77
     78  /// std::string is the
     79  ///name of the new map
    6380  sigc::signal<void, std::string> signal_node_map;
     81
     82  /// Signal emitted in the case of edgemap addition
     83
     84  /// std::string is the
     85  ///name of the new map
    6486  sigc::signal<void, std::string> signal_edge_map;
    6587
    6688public:
    67   ///Constructor of MapStorage. Expects the Graph of
    68   ///which maps will be stored in it.
     89  ///Constructor of MapStorage.
     90
    6991  ///Its all activity is initializing default values
    70   ///for different visualization attributes
    71   ///
    72   ///\param graph is the graph for which the maps are stored in this object.
     92  ///for different visualization attributes.
    7393  MapStorage();
    7494
     95  ///Destructor of MapStorage
     96
     97  ///Maps stored here are created with new. Destructor
     98  ///deletes them to free up the reserved memory.
    7599  ~MapStorage();
    76100
    77   void changeActiveMap(bool, int, std::string);
    78 
    79   std::string getActiveEdgeMap(int);
    80   std::string getActiveNodeMap(int);
    81 
     101  /// Registrates if the shown map by any attribute has changed to another.
     102
     103  ///It handles the \ref active_edgemaps and
     104  ///\ref active_nodemaps vectors. It also emits \ref signal_prop signal to let
     105  ///know the interested objects that the visible map of a certain
     106  ///attribute has changed.
     107  ///\param itisedge edgemap or nodemap has changed
     108  ///\param prop the property of which the map is changed
     109  ///\param mapname the visible map
     110  void changeActiveMap(bool itisedge , int prop , std::string mapname);
     111
     112  /// Returns the active edgemap shown by a visualization property.
     113
     114  /// \param prop is the property
     115  ///that shows the requested map.
     116  std::string getActiveEdgeMap(int prop);
     117
     118  /// Returns the active nodemap shown by a visualization property.
     119
     120  /// \param prop is the property
     121  ///that shows the requested map.
     122  std::string getActiveNodeMap(int prop);
     123
     124  /// Returns the names of the edgemaps stored here.
    82125  std::vector<std::string> getEdgeMapList();
     126
     127  /// Returns the names of the nodemaps stored here.
    83128  std::vector<std::string> getNodeMapList();
    84129
     130  ///returns \ref signal_prop to be able to connect functions to it
    85131  Signal_Prop signal_prop_ch();
    86132
     133  ///returns \ref signal_node_map to be able to connect functions to it
    87134  sigc::signal<void, std::string> signal_node_map_ch(){return signal_node_map;};
     135
     136  ///returns \ref signal_edge_map to be able to connect functions to it
    88137  sigc::signal<void, std::string> signal_edge_map_ch(){return signal_edge_map;};
    89138
     139  ///Adds given map to storage.
     140
     141  ///A name and the map itself has to be provided.
     142  ///\param mapname is the name of map
     143  ///\param nodemap is the pointer of the given nodemap
     144  ///\param def the default value of the map. If not given, it will be 0.
     145  ///If new edge is added to graph the value of it in the map will be this.
     146  ///\todo map should be given by reference!
     147  ///\todo why is default value stored?
     148  int addNodeMap(const std::string & mapname,Graph::NodeMap<double> * nodemap, double def=0.0);
     149
    90150  ///Adds given map to storage. A name and the map itself has to be provided.
    91   ///\param name is the name of map
    92   ///\nodemap is the pointer of the given nodemap
     151
     152  ///A name and the map itself has to be provided.
     153  ///\param mapname is the name of map
     154  ///\param edgemap is the pointer of the given edgemap
     155  ///\param def the default value of the map. If not given, it will be 0.
     156  ///If new edge is added to graph the value of it in the map will be this.
    93157  ///\todo map should be given by reference!
    94   int addNodeMap(const std::string &,Graph::NodeMap<double> *, double);
    95 
    96   ///Adds given map to storage. A name and the map itself has to be provided.
    97   ///\param name is the name of map
    98   ///\edgemap is the pointer of the given edgemap
    99   ///\todo map should be given by reference!
    100   int addEdgeMap(const std::string &,Graph::EdgeMap<double> *, double);
     158  int addEdgeMap(const std::string & mapname,Graph::EdgeMap<double> * edgemap, double def=0.0);
    101159
    102160  ///Returns how much nodemaps is stored in \ref MapStorage
     
    106164  int numOfEdgeMaps() {return edgemap_storage.size();};
    107165
    108   ///Returns the maximum value of the given NodeMap. NodeMap has to be given by its name.
    109   ///\param name is the name of map of which maximum is searched
    110   double maxOfNodeMap(const std::string &);
    111 
    112   ///Returns the maximum value of the given EdgeMap. EdgeMap has to be given by its name.
    113   ///\param name is the name of map of which maximum is searched
    114   double maxOfEdgeMap(const std::string &);
    115 
    116   ///Returns the minimum value of the given NodeMap. NodeMap has to be given by its name.
    117   ///\param name is the name of map of which minimum is searched
    118   double minOfNodeMap(const std::string &);
    119 
    120   ///Returns the minimum value of the given EdgeMap. EdgeMap has to be given by its name.
    121   ///\param name is the name of map of which minimum is searched
    122   double minOfEdgeMap(const std::string &);
    123 
    124   ///To be able to iterate through each maps this function returns an iterator pointing to the first nodemap in the storage.
     166  ///Returns the maximum value of the given NodeMap.
     167
     168  ///NodeMap has to be given by its name.
     169  ///\param name the name of map of which maximum is searched
     170  double maxOfNodeMap(const std::string & name);
     171
     172  ///Returns the maximum value of the given EdgeMap.
     173
     174  ///EdgeMap has to be given by its name.
     175  ///\param name the name of map of which maximum is searched
     176  double maxOfEdgeMap(const std::string & name);
     177
     178  ///Returns the minimum value of the given NodeMap.
     179
     180  ///NodeMap has to be given by its name.
     181  ///\param name the name of map of which minimum is searched
     182  double minOfNodeMap(const std::string & name);
     183
     184  ///Returns the minimum value of the given EdgeMap.
     185
     186  ///EdgeMap has to be given by its name.
     187  ///\param name the name of map of which minimum is searched
     188  double minOfEdgeMap(const std::string & name);
     189
     190  ///Returns iterator pointing to the first NodeMap in storage.
     191
     192  ///To be able to iterate through each maps this function
     193  ///returns an iterator pointing to the first nodemap in
     194  ///the storage.
    125195  std::map< std::string,Graph::NodeMap<double> * >::iterator beginOfNodeMaps(){return nodemap_storage.begin();};
    126196
    127   ///To be able to iterate through each maps this function returns an iterator pointing to the first edgemap in the storage.
     197  ///Returns iterator pointing to the first EdgeMap in storage.
     198
     199  ///To be able to iterate through each maps this function
     200  ///returns an iterator pointing to the first edgemap in
     201  ///the storage.
    128202  std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();};
    129203
    130   ///To be able to iterate through each maps this function returns an iterator pointing to the last nodemap in the storage.
     204  ///Returns iterator pointing after the last NodeMap in storage.
     205
     206  ///To be able to iterate through each maps this function
     207  ///returns an iterator pointing to the last nodemap in the storage.
    131208  std::map< std::string,Graph::NodeMap<double> * >::iterator endOfNodeMaps(){return nodemap_storage.end();};
    132209
    133   ///To be able to iterate through each maps this function returns an iterator pointing to the last edgemap in the storage.
     210  ///Returns iterator pointing after the last EdgeMap in storage.
     211
     212  ///To be able to iterate through each maps this function
     213  ///returns an iterator pointing to the last edgemap in the storage.
    134214  std::map< std::string,Graph::EdgeMap<double> * >::iterator endOfEdgeMaps(){return edgemap_storage.end();};
    135215
    136   void mapChanged(bool, std::string);
    137 
     216  ///Emits \ref signal_prop if mapvalues have changed, and MapStorage gets to know it.
     217
     218  ///If values in a map have changed, this function checks, whether it is displayed.
     219  ///This check means searching the given mapname between active maps
     220  ///(\ref active_nodemaps, \ref active_edgemaps). If it is there at a certain property,
     221  ///it emits a signal with the property, where the gotten mapname was found. One signal
     222  ///is emitted for each property displaying the given map.
     223  ///\param itisedge whether the map an edgemap or nodemap
     224  ///\param mapname name of map to visualize
     225  void mapChanged(bool itisedge, std::string mapname);
     226
     227  ///Read datas from the given filename.
    138228  int readFromFile(const std::string &);
     229
     230  ///Save datas to the given filename.
    139231  void writeToFile(const std::string &);
    140232
     233  ///Deletes all datastructures stored here.
    141234  void clear();
    142235
Note: See TracChangeset for help on using the changeset viewer.