This class implements a special graph type. The nodes of the graph can be indexed by two integer
(i,j) value where i
is in the
[0..width()-1] range and j is in the
[0..height()-1] range. Two nodes are connected in the graph if the indexes differ exactly on one position and exactly one is the difference. The nodes of the graph can be indexed by position with the operator()()
function. The positions of the nodes can be get with pos()
, col()
and row()
members. The outgoing arcs can be retrieved with the right()
, up()
, left()
and down()
functions, where the bottom-left corner is the origin.
A short example about the basic usage:
GridGraph::NodeMap<int> val(graph);
for (int i = 0; i < graph.width(); ++i) {
for (int j = 0; j < graph.height(); ++j) {
val[graph(i, j)] = i + j;
}
}
This graph type fully conforms to the Graph concept.
Inherits GraphExtender< Base >.
|
| GridGraph (int width, int height) |
| Constructor.
|
|
void | resize (int width, int height) |
| Resize the graph.
|
|
Node | operator() (int i, int j) const |
| The node on the given position.
|
|
int | col (Node n) const |
|
int | row (Node n) const |
|
dim2::Point< int > | pos (Node n) const |
| Gives back the position of the node.
|
|
int | width () const |
|
int | height () const |
|
Arc | right (Node n) const |
| Gives back the arc goes right from the node.
|
|
Arc | left (Node n) const |
| Gives back the arc goes left from the node.
|
|
Arc | up (Node n) const |
| Gives back the arc goes up from the node.
|
|
Arc | down (Node n) const |
| Gives back the arc goes down from the node.
|
|
IndexMap | indexMap () const |
| Index map of the grid graph.
|
|
RowMap | rowMap () const |
| Row map of the grid graph.
|
|
ColMap | colMap () const |
| Column map of the grid graph.
|
|