src/gui/mapstorage.cc
author deba
Wed, 11 May 2005 17:36:25 +0000
changeset 1413 3f45d58969d4
permissions -rw-r--r--
Fixing invertable maps:
InvertableMap
DescriptorMap
IdMap
ladanyi@1412
     1
#include <mapstorage.h>
ladanyi@1412
     2
ladanyi@1412
     3
MapStorage::MapStorage(Graph & graph):g(graph)
ladanyi@1412
     4
{
ladanyi@1412
     5
  for(int i=0;i<PROPERTY_NUM;i++)
ladanyi@1412
     6
  {
ladanyi@1412
     7
    Graph::EdgeMap<double> emd(g);
ladanyi@1412
     8
    default_edgemaps.push_back(emd);
ladanyi@1412
     9
    Graph::NodeMap<double> nmd(g);
ladanyi@1412
    10
    default_nodemaps.push_back(nmd);
ladanyi@1412
    11
  }
ladanyi@1412
    12
ladanyi@1412
    13
  //std::string defaultstr="Default ";
ladanyi@1412
    14
  for(int i=0;i<PROPERTY_NUM;i++)
ladanyi@1412
    15
  {
ladanyi@1412
    16
      for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@1412
    17
      {
ladanyi@1412
    18
	(default_edgemaps[i])[j]=property_defaults[i];
ladanyi@1412
    19
      }
ladanyi@1412
    20
      addEdgeMap(property_strings[i],&(default_edgemaps[i]));
ladanyi@1412
    21
  }
ladanyi@1412
    22
ladanyi@1412
    23
};
ladanyi@1412
    24
ladanyi@1412
    25
int MapStorage::addNodeMap(const std::string & name, Graph::NodeMap<double> *nodemap)
ladanyi@1412
    26
{
ladanyi@1412
    27
  nodemap_storage[name]=nodemap;
ladanyi@1412
    28
  return 0;
ladanyi@1412
    29
}
ladanyi@1412
    30
int MapStorage::addEdgeMap(const std::string & name, Graph::EdgeMap<double> *edgemap)
ladanyi@1412
    31
{
ladanyi@1412
    32
  edgemap_storage[name]=edgemap;
ladanyi@1412
    33
  return 0;
ladanyi@1412
    34
}
ladanyi@1412
    35
ladanyi@1412
    36
double MapStorage::maxOfNodeMap(const std::string & name)
ladanyi@1412
    37
{
ladanyi@1412
    38
  double max=0;
ladanyi@1412
    39
  for (NodeIt j(g); j!=INVALID; ++j)
ladanyi@1412
    40
  {
ladanyi@1412
    41
    if( (*nodemap_storage[name])[j]>max )
ladanyi@1412
    42
    {
ladanyi@1412
    43
      max=(*nodemap_storage[name])[j];
ladanyi@1412
    44
    }
ladanyi@1412
    45
  }
ladanyi@1412
    46
  return max;
ladanyi@1412
    47
}
ladanyi@1412
    48
ladanyi@1412
    49
double MapStorage::maxOfEdgeMap(const std::string & name)
ladanyi@1412
    50
{
ladanyi@1412
    51
  double max=0;
ladanyi@1412
    52
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@1412
    53
  {
ladanyi@1412
    54
    if( (*edgemap_storage[name])[j]>max )
ladanyi@1412
    55
    {
ladanyi@1412
    56
      max=(*edgemap_storage[name])[j];
ladanyi@1412
    57
    }
ladanyi@1412
    58
  }
ladanyi@1412
    59
  return max;
ladanyi@1412
    60
}
ladanyi@1412
    61
ladanyi@1412
    62
double MapStorage::minOfNodeMap(const std::string & name)
ladanyi@1412
    63
{
ladanyi@1412
    64
  NodeIt j(g);
ladanyi@1412
    65
  double min=(*nodemap_storage[name])[j];
ladanyi@1412
    66
  for (; j!=INVALID; ++j)
ladanyi@1412
    67
  {
ladanyi@1412
    68
    if( (*nodemap_storage[name])[j]<min )
ladanyi@1412
    69
    {
ladanyi@1412
    70
      min=(*nodemap_storage[name])[j];
ladanyi@1412
    71
    }
ladanyi@1412
    72
  }
ladanyi@1412
    73
  return min;
ladanyi@1412
    74
}
ladanyi@1412
    75
ladanyi@1412
    76
double MapStorage::minOfEdgeMap(const std::string & name)
ladanyi@1412
    77
{
ladanyi@1412
    78
  EdgeIt j(g);
ladanyi@1412
    79
  double min=(*edgemap_storage[name])[j];
ladanyi@1412
    80
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@1412
    81
  {
ladanyi@1412
    82
    if( (*edgemap_storage[name])[j]<min )
ladanyi@1412
    83
    {
ladanyi@1412
    84
      min=(*edgemap_storage[name])[j];
ladanyi@1412
    85
    }
ladanyi@1412
    86
  }
ladanyi@1412
    87
  return min;
ladanyi@1412
    88
}
ladanyi@1412
    89