Scnyder's algorithm embeds the graph on an (n-2)x(n-2) size grid, i.e. each node will be located in the [0..n-2]x[0..n-2] square. The time complexity of the algorithm is O(n).
#include <lemon/planarity.h>
Public Types | |
| typedef dim2::Point< int > | Point |
| The point type for storing coordinates. | |
|
typedef Graph::template NodeMap< Point > | PointMap |
| The map type for storing the coordinates of the nodes. | |
Public Member Functions | |
| PlanarDrawing (const Graph &graph) | |
| Constructor. | |
| bool | run () |
| Calculate the node positions. | |
| template<typename EmbeddingMap > | |
| void | run (const EmbeddingMap &embedding) |
| Calculate the node positions according to a combinatorical embedding. | |
| Point | operator[] (const Node &node) const |
| The coordinate of the given node. | |
| const PointMap & | coords () const |
| Return the grid embedding in a node map. | |
| PlanarDrawing | ( | const Graph & | graph | ) | [inline] |
Constructor
| bool run | ( | ) | [inline] |
This function calculates the node positions on the plane.
true if the graph is planar. | void run | ( | const EmbeddingMap & | embedding | ) | [inline] |
This function calculates the node positions on the plane. The given embedding map should contain a valid combinatorical embedding, i.e. a valid cyclic order of the arcs. It can be computed using PlanarEmbedding.
| Point operator[] | ( | const Node & | node | ) | const [inline] |
This function returns the coordinate of the given node.
| const PointMap& coords | ( | ) | const [inline] |
This function returns the grid embedding in a node map of dim2::Point<int> coordinates.