doc/maps.dox
author alpar
Fri, 19 Mar 2004 21:15:14 +0000
changeset 210 6bc65a8a99c6
parent 205 992aac9c9541
child 273 e9024dad7fc1
permissions -rw-r--r--
get() -> operator[]()
alpar@202
     1
/*!
alpar@202
     2
alpar@202
     3
\page maps How to write maps
alpar@202
     4
alpar@202
     5
\section read-maps Readable Maps
alpar@202
     6
alpar@202
     7
It is quite easy to write your own readmap for the edges or nodes of a graph.
alpar@202
     8
alpar@202
     9
You can find some example below.
alpar@202
    10
alpar@204
    11
This simple map assigns \f$\pi\f$ to each edge.
alpar@204
    12
alpar@202
    13
\code
alpar@202
    14
class MyMap 
alpar@202
    15
{
alpar@205
    16
  double operator[](Graph::EdgeIt e) const { return 1;}
alpar@204
    17
};
alpar@204
    18
\endcode
alpar@204
    19
alpar@204
    20
alpar@210
    21
Here is a more complex example. It provides a length function which is obtained
alpar@210
    22
from a base length function modified by a potential difference.
alpar@210
    23
\todo Please improve on the english. 
alpar@202
    24
alpar@202
    25
\code
alpar@202
    26
class MyLengthMap 
alpar@202
    27
{
alpar@202
    28
  const Graph::EdgeMap &ol;
alpar@202
    29
  const Graph::NodeMap &pot;
alpar@202
    30
  
alpar@210
    31
  double operator[](Graph::EdgeIt e) const {
alpar@210
    32
    return ol.get(e)-pot.get(v)-pot.get(u);
alpar@210
    33
  }
alpar@202
    34
  
alpar@202
    35
  MyComplexMap(const Graph::EdgeMap &o,const Graph::NodeMap &p) :
alpar@202
    36
    ol(o), pot(p);
alpar@202
    37
};
alpar@202
    38
\endcode
alpar@202
    39
alpar@202
    40
*/