mapstorage.cc
author hegyi
Wed, 29 Jun 2005 19:44:30 +0000
branchgui
changeset 31 66e85f44a66f
parent 30 f70bbee5350a
child 46 121452cc4096
permissions -rw-r--r--
Uh, long comment arrives... Zoom update does not happen after editorial steps. Nodes initial color is light blue, if there is any item under them. Strange node-text relations disappeared. Initial values of new items are given now in a more common way. The wood-cutter way of handling default values of properties is now changed.
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
{
ladanyi@6
     9
  nodemap_storage[name]=nodemap;
ladanyi@6
    10
  return 0;
ladanyi@6
    11
}
ladanyi@6
    12
ladanyi@6
    13
int MapStorage::addEdgeMap(const std::string & name, Graph::EdgeMap<double> *edgemap)
ladanyi@6
    14
{
ladanyi@6
    15
  edgemap_storage[name]=edgemap;
ladanyi@6
    16
  return 0;
ladanyi@6
    17
}
ladanyi@6
    18
ladanyi@6
    19
double MapStorage::maxOfNodeMap(const std::string & name)
ladanyi@6
    20
{
ladanyi@6
    21
  double max=0;
ladanyi@6
    22
  for (NodeIt j(g); j!=INVALID; ++j)
ladanyi@6
    23
  {
ladanyi@6
    24
    if( (*nodemap_storage[name])[j]>max )
ladanyi@6
    25
    {
ladanyi@6
    26
      max=(*nodemap_storage[name])[j];
ladanyi@6
    27
    }
ladanyi@6
    28
  }
ladanyi@6
    29
  return max;
ladanyi@6
    30
}
ladanyi@6
    31
ladanyi@6
    32
double MapStorage::maxOfEdgeMap(const std::string & name)
ladanyi@6
    33
{
ladanyi@6
    34
  double max=0;
ladanyi@6
    35
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@6
    36
  {
ladanyi@6
    37
    if( (*edgemap_storage[name])[j]>max )
ladanyi@6
    38
    {
ladanyi@6
    39
      max=(*edgemap_storage[name])[j];
ladanyi@6
    40
    }
ladanyi@6
    41
  }
ladanyi@6
    42
  return max;
ladanyi@6
    43
}
ladanyi@6
    44
ladanyi@6
    45
double MapStorage::minOfNodeMap(const std::string & name)
ladanyi@6
    46
{
ladanyi@6
    47
  NodeIt j(g);
ladanyi@6
    48
  double min=(*nodemap_storage[name])[j];
ladanyi@6
    49
  for (; j!=INVALID; ++j)
ladanyi@6
    50
  {
ladanyi@6
    51
    if( (*nodemap_storage[name])[j]<min )
ladanyi@6
    52
    {
ladanyi@6
    53
      min=(*nodemap_storage[name])[j];
ladanyi@6
    54
    }
ladanyi@6
    55
  }
ladanyi@6
    56
  return min;
ladanyi@6
    57
}
ladanyi@6
    58
ladanyi@6
    59
double MapStorage::minOfEdgeMap(const std::string & name)
ladanyi@6
    60
{
ladanyi@6
    61
  EdgeIt j(g);
ladanyi@6
    62
  double min=(*edgemap_storage[name])[j];
ladanyi@6
    63
  for (EdgeIt j(g); j!=INVALID; ++j)
ladanyi@6
    64
  {
ladanyi@6
    65
    if( (*edgemap_storage[name])[j]<min )
ladanyi@6
    66
    {
ladanyi@6
    67
      min=(*edgemap_storage[name])[j];
ladanyi@6
    68
    }
ladanyi@6
    69
  }
ladanyi@6
    70
  return min;
ladanyi@6
    71
}
ladanyi@6
    72
hegyi@30
    73
void MapStorage::initMapsForEdge(Graph::Edge e)
hegyi@26
    74
{
hegyi@31
    75
  std::map< std::string,Graph::EdgeMap<double> * >::iterator ems_it;
hegyi@31
    76
  for(ems_it=edgemap_storage.begin();ems_it!=edgemap_storage.end();ems_it++)
hegyi@31
    77
    {
hegyi@31
    78
      (*((*ems_it).second))[e]=5;
hegyi@31
    79
    }
hegyi@26
    80
}