Declaration of interface hierarchy layout algorithms (3.
Declaration of doubly linked lists and iterators.
Coordinate assignment phase for the Sugiyama algorithm by Buchheim et al.
void nodeDistance(double dist)
Sets the option node distance to dist.
bool * virt
for every node : virt[node] = 1 if node is virtual, 0 otherwise.
void fixedLayerDistance(bool b)
Sets the option fixed layer distance to b.
double m_minNodeDist
The minimal node distance on a layer.
void findPlacement()
Computes the layout of an embedded layered graph.
void decrTo(double &d, double t)
double * breadth
for every node : breadth[node] = width of the node.
bool fixedLayerDistance() const
Returns the option fixed layer distance.
bool sameLayer(int n1, int n2) const
int * first
Stores for every layer the index of the first node.
bool m_fixedLayerDist
0 if distance between layers should be variable, 1 otherwise.
int * layer
Stores for every node its layer.
void incrTo(double &d, double t)
double nodeDistance() const
Returns the option node distance.
double layerDistance() const
Returns the option layer distance.
int n
The number of nodes including virtual nodes.
FastHierarchyLayout(const FastHierarchyLayout &)
Copy constructor.
FastHierarchyLayout & operator=(const FastHierarchyLayout &)
Assignment operator.
int m
The number edge sections.
double * x
for every node : x coordinate of node.
double * mDist
Similar to totalB, used for temporary storage.
virtual ~FastHierarchyLayout()
virtual void doCall(const HierarchyLevelsBase &levels, GraphAttributes &AGC) override
Implements the actual algorithm call.
List< int > ** longEdge
The nodes belonging to a long edge.
FastHierarchyLayout()
Creates an instance of fast hierarchy layout.
double * y
for every layer : y coordinate of layer.
bool placeSingleNode(int leftBnd, int rightBnd, int actNode, double &best, int d)
Places a sequence of nonvirtual nodes containing exactly one node.
bool isLast(int actNode) const
bool isFirst(int actNode) const
void moveLongEdge(int actNode, int dir, bool *marked)
Used for postprocessing the layout.
void layerDistance(double dist)
Sets the option layer distance to dist.
int k
The number of layers.
void straightenEdge(int actNode, bool *marked)
Tries to remove a bend at the position of the virtual node by straightening the edge.
void placeNodes(int leftBnd, int rightBnd, int left, int right, int d)
Places a sequence of nonvirtual nodes.
double * totalB
for every node : minimal possible distance between the center of a node and first[layer[node]].
double m_minLayerDist
The minimal distance between layers.
void sortLongEdges(int actNode, int dir, double *pos, bool &exD, double &dist, int *block, bool *marked)
Places the node actNode as far as possible to the left (if dir = 1) or to the right (if dir = -1) wit...
double * height
for every layer : height[layer] = height of max{height of node on layer}.
Stores additional attributes of a graph (like layout information).
Interface of hierarchy layout algorithms.
Doubly linked lists (maintaining the length of the list).
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.