Changeset 118:cfd49e5c8723 in glemon-0.x for mapstorage.h
- Timestamp:
- 01/10/06 16:15:57 (18 years ago)
- Branch:
- gui
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2463
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
mapstorage.h
r111 r118 9 9 #include "xymap.h" 10 10 #include <libgnomecanvasmm.h> 11 12 ///class MapStorage handles NodeMaps and EdgeMaps. 11 13 12 14 ///Class MapStorage is responsible for storing … … 23 25 public: 24 26 27 ///The graph for which the datas are stored. 25 28 Graph graph; 26 29 /// the coordinates of the nodes … … 29 32 XYMap<Graph::EdgeMap<double> > arrow_pos; 30 33 34 ///The content of the object has changed, update is needed. 31 35 bool modified; 36 37 ///Name of file loaded in object. 32 38 std::string file_name; 33 39 … … 38 44 std::map< std::string,Graph::EdgeMap<double> * > edgemap_storage; 39 45 40 // Stores the default values for the different visualization node attributes46 ///Stores the default values for the different visualization node attributes 41 47 std::vector<Graph::NodeMap<double> > default_nodemaps; 42 48 43 // Stores the default values for the different visualization edge attributes49 ///Stores the default values for the different visualization edge attributes 44 50 std::vector<Graph::EdgeMap<double> > default_edgemaps; 45 51 46 // Stores the active maps for the different visualization node attributes52 ///Stores the active maps for the different visualization node attributes 47 53 std::vector< std::string > active_nodemaps; 48 54 49 // Stores the active maps for the different visualization edge attributes55 /// Stores the active maps for the different visualization edge attributes 50 56 std::vector< std::string > active_edgemaps; 51 57 52 // Default values for the maps58 /// Default values for the maps 53 59 std::map< std::string, double > nodemap_default; 54 60 55 // Default values for the maps61 /// Default values for the maps 56 62 std::map< std::string, double > edgemap_default; 57 63 … … 59 65 60 66 protected: 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 61 71 typedef sigc::signal<void, bool, int> Signal_Prop; 72 73 /// Signal emitted on any change made on map values 62 74 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 63 80 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 64 86 sigc::signal<void, std::string> signal_edge_map; 65 87 66 88 public: 67 ///Constructor of MapStorage. Expects the Graph of68 ///which maps will be stored in it. 89 ///Constructor of MapStorage. 90 69 91 ///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. 73 93 MapStorage(); 74 94 95 ///Destructor of MapStorage 96 97 ///Maps stored here are created with new. Destructor 98 ///deletes them to free up the reserved memory. 75 99 ~MapStorage(); 76 100 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. 82 125 std::vector<std::string> getEdgeMapList(); 126 127 /// Returns the names of the nodemaps stored here. 83 128 std::vector<std::string> getNodeMapList(); 84 129 130 ///returns \ref signal_prop to be able to connect functions to it 85 131 Signal_Prop signal_prop_ch(); 86 132 133 ///returns \ref signal_node_map to be able to connect functions to it 87 134 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 88 137 sigc::signal<void, std::string> signal_edge_map_ch(){return signal_edge_map;}; 89 138 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 90 150 ///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. 93 157 ///\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); 101 159 102 160 ///Returns how much nodemaps is stored in \ref MapStorage … … 106 164 int numOfEdgeMaps() {return edgemap_storage.size();}; 107 165 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. 125 195 std::map< std::string,Graph::NodeMap<double> * >::iterator beginOfNodeMaps(){return nodemap_storage.begin();}; 126 196 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. 128 202 std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();}; 129 203 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. 131 208 std::map< std::string,Graph::NodeMap<double> * >::iterator endOfNodeMaps(){return nodemap_storage.end();}; 132 209 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. 134 214 std::map< std::string,Graph::EdgeMap<double> * >::iterator endOfEdgeMaps(){return edgemap_storage.end();}; 135 215 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. 138 228 int readFromFile(const std::string &); 229 230 ///Save datas to the given filename. 139 231 void writeToFile(const std::string &); 140 232 233 ///Deletes all datastructures stored here. 141 234 void clear(); 142 235
Note: See TracChangeset
for help on using the changeset viewer.