mapstorage.cc
author hegyi
Wed, 27 Jul 2005 11:35:13 +0000
branchgui
changeset 46 121452cc4096
parent 31 66e85f44a66f
child 53 e73d7540bd24
permissions -rw-r--r--
No maps with the same name can be added.
ladanyi@6
     1
#include <mapstorage.h>
ladanyi@6
     2
ladanyi@6
     3
MapStorage::MapStorage(Graph & graph):g(graph)
ladanyi@6
     4
{
ladanyi@6
     5
};
ladanyi@6
     6
ladanyi@6
     7
int MapStorage::addNodeMap(const std::string & name, Graph::NodeMap<double> *nodemap)
ladanyi@6
     8
{
hegyi@46
     9
  if( nodemap_storage.find(name) == nodemap_storage.end() )
hegyi@46
    10
    {
hegyi@46
    11
      nodemap_storage[name]=nodemap;
hegyi@46
    12
      return 0;
hegyi@46
    13
    }
hegyi@46
    14
  return 1;
ladanyi@6
    15
}
ladanyi@6
    16
ladanyi@6
    17
int MapStorage::addEdgeMap(const std::string & name, Graph::EdgeMap<double> *edgemap)
ladanyi@6
    18
{
hegyi@46
    19
  if( edgemap_storage.find(name) == edgemap_storage.end() )
hegyi@46
    20
    {
hegyi@46
    21
      edgemap_storage[name]=edgemap;
hegyi@46
    22
      return 0;
hegyi@46
    23
    }
hegyi@46
    24
  return 1;
ladanyi@6
    25
}
ladanyi@6
    26
ladanyi@6
    27
double MapStorage::maxOfNodeMap(const std::string & name)
ladanyi@6
    28
{
ladanyi@6
    29
  double max=0;
ladanyi@6
    30
  for (NodeIt j(g); j!=INVALID; ++j)
ladanyi@6
    31
  {
ladanyi@6
    32
    if( (*nodemap_storage[name])[j]>max )
ladanyi@6
    33
    {
ladanyi@6
    34
      max=(*nodemap_storage[name])[j];
ladanyi@6
    35
    }
ladanyi@6
    36
  }
ladanyi@6
    37
  return max;
ladanyi@6
    38
}
ladanyi@6
    39
ladanyi@6
    40
double MapStorage::maxOfEdgeMap(const std::string & name)
ladanyi@6
    41
{
ladanyi@6
    42
  double max=0;
ladanyi@6
    43
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@6
    44
  {
ladanyi@6
    45
    if( (*edgemap_storage[name])[j]>max )
ladanyi@6
    46
    {
ladanyi@6
    47
      max=(*edgemap_storage[name])[j];
ladanyi@6
    48
    }
ladanyi@6
    49
  }
ladanyi@6
    50
  return max;
ladanyi@6
    51
}
ladanyi@6
    52
ladanyi@6
    53
double MapStorage::minOfNodeMap(const std::string & name)
ladanyi@6
    54
{
ladanyi@6
    55
  NodeIt j(g);
ladanyi@6
    56
  double min=(*nodemap_storage[name])[j];
ladanyi@6
    57
  for (; j!=INVALID; ++j)
ladanyi@6
    58
  {
ladanyi@6
    59
    if( (*nodemap_storage[name])[j]<min )
ladanyi@6
    60
    {
ladanyi@6
    61
      min=(*nodemap_storage[name])[j];
ladanyi@6
    62
    }
ladanyi@6
    63
  }
ladanyi@6
    64
  return min;
ladanyi@6
    65
}
ladanyi@6
    66
ladanyi@6
    67
double MapStorage::minOfEdgeMap(const std::string & name)
ladanyi@6
    68
{
ladanyi@6
    69
  EdgeIt j(g);
ladanyi@6
    70
  double min=(*edgemap_storage[name])[j];
ladanyi@6
    71
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@6
    72
  {
ladanyi@6
    73
    if( (*edgemap_storage[name])[j]<min )
ladanyi@6
    74
    {
ladanyi@6
    75
      min=(*edgemap_storage[name])[j];
ladanyi@6
    76
    }
ladanyi@6
    77
  }
ladanyi@6
    78
  return min;
ladanyi@6
    79
}
ladanyi@6
    80
hegyi@30
    81
void MapStorage::initMapsForEdge(Graph::Edge e)
hegyi@26
    82
{
hegyi@31
    83
  std::map< std::string,Graph::EdgeMap<double> * >::iterator ems_it;
hegyi@31
    84
  for(ems_it=edgemap_storage.begin();ems_it!=edgemap_storage.end();ems_it++)
hegyi@31
    85
    {
hegyi@31
    86
      (*((*ems_it).second))[e]=5;
hegyi@31
    87
    }
hegyi@26
    88
}