ladanyi@1442: #include <mapstorage.h>
ladanyi@1442: 
ladanyi@1442: MapStorage::MapStorage(Graph & graph):g(graph)
ladanyi@1442: {
ladanyi@1442: };
ladanyi@1442: 
ladanyi@1442: int MapStorage::addNodeMap(const std::string & name, Graph::NodeMap<double> *nodemap)
ladanyi@1442: {
ladanyi@1442:   nodemap_storage[name]=nodemap;
ladanyi@1442:   return 0;
ladanyi@1442: }
ladanyi@1442: 
ladanyi@1442: int MapStorage::addEdgeMap(const std::string & name, Graph::EdgeMap<double> *edgemap)
ladanyi@1442: {
ladanyi@1442:   edgemap_storage[name]=edgemap;
ladanyi@1442:   return 0;
ladanyi@1442: }
ladanyi@1442: 
ladanyi@1442: double MapStorage::maxOfNodeMap(const std::string & name)
ladanyi@1442: {
ladanyi@1442:   double max=0;
ladanyi@1442:   for (NodeIt j(g); j!=INVALID; ++j)
ladanyi@1442:   {
ladanyi@1442:     if( (*nodemap_storage[name])[j]>max )
ladanyi@1442:     {
ladanyi@1442:       max=(*nodemap_storage[name])[j];
ladanyi@1442:     }
ladanyi@1442:   }
ladanyi@1442:   return max;
ladanyi@1442: }
ladanyi@1442: 
ladanyi@1442: double MapStorage::maxOfEdgeMap(const std::string & name)
ladanyi@1442: {
ladanyi@1442:   double max=0;
ladanyi@1442:   for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@1442:   {
ladanyi@1442:     if( (*edgemap_storage[name])[j]>max )
ladanyi@1442:     {
ladanyi@1442:       max=(*edgemap_storage[name])[j];
ladanyi@1442:     }
ladanyi@1442:   }
ladanyi@1442:   return max;
ladanyi@1442: }
ladanyi@1442: 
ladanyi@1442: double MapStorage::minOfNodeMap(const std::string & name)
ladanyi@1442: {
ladanyi@1442:   NodeIt j(g);
ladanyi@1442:   double min=(*nodemap_storage[name])[j];
ladanyi@1442:   for (; j!=INVALID; ++j)
ladanyi@1442:   {
ladanyi@1442:     if( (*nodemap_storage[name])[j]<min )
ladanyi@1442:     {
ladanyi@1442:       min=(*nodemap_storage[name])[j];
ladanyi@1442:     }
ladanyi@1442:   }
ladanyi@1442:   return min;
ladanyi@1442: }
ladanyi@1442: 
ladanyi@1442: double MapStorage::minOfEdgeMap(const std::string & name)
ladanyi@1442: {
ladanyi@1442:   EdgeIt j(g);
ladanyi@1442:   double min=(*edgemap_storage[name])[j];
ladanyi@1442:   for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@1442:   {
ladanyi@1442:     if( (*edgemap_storage[name])[j]<min )
ladanyi@1442:     {
ladanyi@1442:       min=(*edgemap_storage[name])[j];
ladanyi@1442:     }
ladanyi@1442:   }
ladanyi@1442:   return min;
ladanyi@1442: }
ladanyi@1442: 
hegyi@1524: void MapStorage::initMapsForEdge(Graph::Edge e)
hegyi@1509: {
hegyi@1525:   std::map< std::string,Graph::EdgeMap<double> * >::iterator ems_it;
hegyi@1525:   for(ems_it=edgemap_storage.begin();ems_it!=edgemap_storage.end();ems_it++)
hegyi@1525:     {
hegyi@1525:       (*((*ems_it).second))[e]=5;
hegyi@1525:     }
hegyi@1509: }