|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
69 m_deleteGraph = !modifyG;
86 enum class CompType { bond, polygon, triconnected };
100 m_type = (m_edges.
size() >= 4) ? CompType::triconnected : CompType::polygon;
119 bool checkComp()
const;
122 bool checkSepPair(
edge eVirt)
const;
124 void clearStructures();
128 void splitMultiEdges();
136 m_TSTACK_h[++m_top] = h;
137 m_TSTACK_a[m_top] = a;
138 m_TSTACK_b[m_top] = b;
166 void buildAcceptableAdjStruct();
169 void pathFinder(
node v);
176 bool pathSearch(
node init_v,
bool fail_fast,
node& s1,
node& s2);
178 void afterRecursivePathSearch(
const node v,
const int vnum,
const int outv,
181 bool afterRecursivePathSearch(
const node v,
const int vnum,
const int outv,
const edge e,
185 void assembleTriconnectedComponents();
188 void printOs(
edge e)
const;
189 void printStacks()
const;
192 int high(
node v) {
return (m_HIGHPT[v].empty()) ? 0 : m_HIGHPT[v].front(); }
ArrayBuffer< edge > m_ESTACK
stack of currently active edges
The namespace for all OGDF objects.
Declaration and implementation of ArrayBuffer class.
EdgeArray< ListIterator< edge > > m_IN_ADJ
pointer to element in adjacency list containing e
Includes declaration of graph class.
NodeArray< int > m_NUMBER
(first) dfs-number of v
NodeArray< List< edge > > m_A
adjacency list of v
int m_numCount
counter for dfs-traversal
NodeArray< node > m_FATHER
father of v in palm tree
NodeArray< int > m_ND
number of descendants in palm tree
void TSTACK_push(int h, int a, int b)
push a triple on TSTACK
void TSTACK_pushEOS()
push end-of-stack marker on TSTACK
bool valid() const
Returns true iff the iterator points to an element.
NodeArray< int > m_DEGREE
degree of v
int * m_TSTACK_h
stack of triples
Copies of graphs with mapping between nodes and edges.
Graph * m_pG
modifiable copy of G also containing virtual edges
CompType
type of split-components / triconnected components
Array< node > m_NODEAT
node with number i
int high(node v)
returns high(v) value
EdgeArray< ListIterator< int > > m_IN_HIGH
pointer to element in HIGHPT list containing e
NodeArray< int > m_LOWPT1
void finishTricOrPoly(edge e)
The parameterized class Array implements dynamic arrays of type E.
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.
Declaration of graph copy classes.
RegisteredArray for nodes, edges and adjEntries of a graph.
Data type for general directed graphs (adjacency list representation).
Array< CompStruct > m_component
array of components
NodeArray< edge > m_TREE_ARC
tree arc entering v
@ tree
for every hyperedge e a minimal subcubic tree connecting all hypernodes incident with e together is a...
Triconnectivity(const Graph &G)
Divides G into triconnected components.
Triconnectivity(Graph &G, bool modifyG=false)
Divides G into triconnected components.
int m_numComp
number of components
NodeArray< List< int > > m_HIGHPT
list of fronds entering v in the order they are visited
Basic declarations, included by all source files.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Declaration and implementation of Array class and Array algorithms.
CompStruct & newComp()
create a new empty component
NodeArray< int > m_LOWPT2
EdgeArray< bool > m_START
edge starts a path
bool m_newPath
true iff we start a new path
Class for the representation of edges.
Declaration of doubly linked lists and iterators.
bool m_deleteGraph
whether the Graph(Copy) was created by us and should thus be deleted in the destructor
T GCoriginal(T n) const
returns m_pG.original(n) if m_pG is a GraphCopySimple, otherwise n itself
CompStruct & operator<<(edge e)
NodeArray< int > m_NEWNUM
(second) dfs-number of v
int size() const
Returns the number of elements in the list.
Encapsulates a pointer to a list element.
EdgeArray< EdgeType > m_TYPE
type of edge e
EdgeType
type of edges with respect to palm tree
realizes Hopcroft/Tarjan algorithm for finding the triconnected components of a biconnected multi-gra...
node target() const
Returns the target node of the edge.
representation of a component
Class for the representation of nodes.
CompStruct & newComp(CompType t)
create a new empty component of type t
node m_start
start node of dfs traversal
bool TSTACK_notEOS()
returns true iff end-of-stack marker is not on top of TSTACK
iterator pushBack(const E &x)
Adds element x at the end of the list.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.