144 call(G, length, rank);
Declaration of interface for acyclic subgraph algorithms.
Includes declaration of graph class.
Declaration of interface for ranking algorithms.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
Base class of algorithms for computing a maximal acyclic subgraph.
Stores additional attributes of a graph (like layout information).
Copies of graphs with mapping between nodes and edges.
Data type for general directed graphs (adjacency list representation).
The longest-path ranking algorithm.
bool separateDeg0Layer() const
Returns the current setting of option separateDeg0Layer.
virtual void call(const Graph &G, const EdgeArray< int > &length, const EdgeArray< int > &cost, NodeArray< int > &rank) override
Computes a node ranking of G with given minimal edge length in rank.
void getTmpRank(node v, NodeArray< int > &rank)
void call(const Graph &G, const EdgeArray< int > &length, NodeArray< int > &rank)
Computes a node ranking of G with given minimal edge length in rank.
bool alignBaseClasses() const
Returns the current setting of alignment of base classes (callUML only).
bool alignSiblings() const
Returns the current setting of option for alignment of siblings.
bool optimizeEdgeLength() const
Returns the current setting of option optimizeEdgeLength.
LongestPathRanking()
Creates an instance of longest-path ranking.
void alignBaseClasses(bool b)
Sets the option for alignment of base classes to b.
void setSubgraph(AcyclicSubgraphModule *pSubgraph)
Sets the module for the computation of the acyclic subgraph.
NodeArray< int > m_ingoing
bool m_alignSiblings
Align siblings (callUML only).
void alignSiblings(bool b)
Sets the option for alignment of siblings to b.
void dfsAdd(node v, NodeArray< int > &rank)
NodeArray< SListPure< Tuple2< node, int > > > m_adjacent
bool m_separateMultiEdges
Separate multi-edges?
virtual void call(const Graph &G, NodeArray< int > &rank) override
Computes a node ranking of G in rank.
void join(GraphCopySimple &GC, NodeArray< node > &superNode, NodeArray< SListPure< node > > &joinedNodes, node v, node w)
NodeArray< bool > m_finished
std::unique_ptr< AcyclicSubgraphModule > m_subgraph
The acyclic sugraph module.
void doCall(const Graph &G, NodeArray< int > &rank, EdgeArray< bool > &reversed, const EdgeArray< int > &length)
Implements the algorithm call.
bool m_optimizeEdgeLength
Optimize for short edges.
void separateDeg0Layer(bool sdl)
Sets the option separateDeg0Layer to sdl.
void optimizeEdgeLength(bool b)
Sets the option optimizeEdgeLength to b.
void separateMultiEdges(bool b)
Sets the option separateMultiEdges to b.
void callUML(const GraphAttributes &AG, NodeArray< int > &rank)
Call for UML graphs with special treatement of inheritance hierarchies.
bool separateMultiEdges() const
Returns the current setting of option separateMultiEdges.
bool m_alignBaseClasses
Align base classes (callUML only).
bool m_sepDeg0
Put isolated nodes on a separate layer?
Class for the representation of nodes.
Interface of algorithms for computing a node ranking.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
The namespace for all OGDF objects.
Declaration and implementation of class Tuple2, Tuple3 and Tuple4.