Orthogonal drawing algorithms


enum  abstractMixedGraph::TMethOrthogonal {
  abstractMixedGraph::ORTHO_DEFAULT = -1,
  abstractMixedGraph::ORTHO_EXPLICIT = 0,
  abstractMixedGraph::ORTHO_EULER = 1,
  abstractMixedGraph::ORTHO_DEG4 = 2,
  abstractMixedGraph::ORTHO_4PLANAR = 3,
  abstractMixedGraph::ORTHO_VISIBILITY_RAW = 4,
  abstractMixedGraph::ORTHO_VISIBILITY_TRIM = 5,
  abstractMixedGraph::ORTHO_VISIBILITY_GIOTTO = 6


void abstractMixedGraph::Layout_Kandinsky (TMethOrthogonal method=ORTHO_DEFAULT, TFloat spacing=0.0) throw (ERRejected)
void abstractMixedGraph::Layout_OrthogonalDeg4 (TMethOrthogonal method=ORTHO_4PLANAR, TFloat spacing=0.0) throw (ERRejected)
bool abstractMixedGraph::Layout_OrthoSmallNodeCompaction () throw (ERRejected)
bool abstractMixedGraph::Layout_OrthoSmallLineSweep () throw (ERRejected)

Enumeration Type Documentation

enum TMethOrthogonal [inherited]

Alternative methods for orthogonal drawing.

ORTHO_DEFAULT  Apply the default method set in goblinController::methOrthogonal.
ORTHO_EXPLICIT  1-bent Kandinsky drawing where the arc routing is entirely determined by the original arc orientations
ORTHO_EULER  1-bent Kandinsky drawing where the arc routing is given by the orientation of an Eulerian cycle
ORTHO_DEG4  Draw graph with maximum node degree 4 by small nodes.
ORTHO_4PLANAR  Draw planar graph with maximum node degree 4 by small nodes.
ORTHO_VISIBILITY_RAW  1-visibility representation
ORTHO_VISIBILITY_TRIM  1-visibility representation with minimum width vertices
ORTHO_VISIBILITY_GIOTTO  Shrink the nodes of a 1-visibility representation to the minimum width which is admissible in the Giotto model.

Function Documentation

void Layout_Kandinsky TMethOrthogonal  method = ORTHO_DEFAULT,
TFloat  spacing = 0.0
throw (ERRejected) [inherited]

Draw a graph in the 1-bent Kandinsky layout model.

spacing The minimum distance between two nodes
This methods draws the graph such that all nodes are squares of equal size and are placed in a coarse grid which is a multiple of spacing. The arcs are drawn by horizontal and vertical segments with at most one bend. If ORTHO_EULER is used, the number of arcs which are attached horizontally to a particular node is (almost) equalized with the number of vertically attached arcs. If ORTHO_EXPLICIT is used, all arcs are leaving vertically and entering horizontally with respect to the original arc orientations.

void Layout_OrthogonalDeg4 TMethOrthogonal  method = ORTHO_4PLANAR,
TFloat  spacing = 0.0
throw (ERRejected) [inherited]

Orthogonal drawing of graphs with maximum node degree 4.

This method supports two variants of orthogonal drawing: If the graph is planely represented, the resulting drawing is also plane. Non-planar graphs can be also drawn. But in either case, the graph must be biconnected

bool Layout_OrthoSmallLineSweep  )  throw (ERRejected) [inherited]

Compaction method for small node orthogonal drawings.

True, if the drawing could be simplified
This method applies to general graphs. It alternately sweeps horizontally and vertically over the drawing, inspecting two consecutive grid lines. If possible, both grid lines are merged. Otherwise, line segments may be shifted to reduce the total edge length and the number of control points

bool Layout_OrthoSmallNodeCompaction  )  throw (ERRejected) [inherited]