|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
52 class SyncPlanComponents;
84 std::ostream&
print(std::ostream& os)
const override;
The namespace for all OGDF objects.
Includes declaration of graph class.
SList< FrozenSimplifyMapping > bij
adjEntry continueNodeDFS(Graph &G, adjEntry u_adj, node v, EdgeSet<> &visited, List< adjEntry > &dfs_stack)
Continue a DFS from the last node of dfs_stack until an unvisited edge incident to v is found.
void undo(SyncPlan &pq) override
SimplifyMapping(adjEntry u2Adj=nullptr, adjEntry uAdj=nullptr, adjEntry vAdj=nullptr, adjEntry v2Adj=nullptr)
Singly linked lists (maintaining the length of the list).
This class represents the embedding tree of a single node in a biconnected component.
UndoSimplify(const List< SimplifyMapping > &in_bij, node u2, node u, node v, node v2=nullptr)
A class for modelling and solving Synchronized Planarity instances.
bool validateCollectedAdjs(node v, node u, List< SimplifyMapping > &bij_list, EdgeSet<> &visited, SyncPlanComponents &components)
Check that /p bij_list contains all adjEntries of v which belong to a parallel bundle leading to u.
AdjElement * adjEntry
The type of adjacency entries.
Class for adjacency list elements.
int exhaustiveNodeDFS(Graph &G, adjEntry u_adj, node v, EdgeSet<> &visited, List< adjEntry > &out)
Use a DFS to find all edges incident to v reachable from u_adj without crossing the node u and add th...
friend std::ostream & operator<<(std::ostream &os, const FrozenSimplifyMapping &mapping)
Declaration of singly linked lists and iterators.
FrozenSimplifyMapping(int u2Adj=-1, int uAdj=-1, int vAdj=-1, int v2Adj=-1)
Doubly linked lists (maintaining the length of the list).
Data type for general directed graphs (adjacency list representation).
The information needed for undoing the changes a specific operation made to the graph while maintaini...
void validatePartnerPCTree(const NodePCRotation *u_pc, const NodePCRotation *v_pc)
For two poles u,v of an (SPQR-Tree) parallel, check that their embedding PCTrees correctly represent ...
friend std::ostream & operator<<(std::ostream &os, const SimplifyMapping &mapping)
Declaration of doubly linked lists and iterators.
std::ostream & print(std::ostream &os) const override
bool compareWithExhaustiveNodeDFS(Graph &G, adjEntry u_adj, node v, const EdgeSet<> &visited, const List< adjEntry > &found)
Check that the method exhaustiveNodeDFS would return the same adjEntries as contained in found.
adjEntry startNodeDFS(Graph &G, adjEntry u_adj, node v, EdgeSet<> &visited, List< adjEntry > &dfs_stack)
Use a DFS to find an edge incident to v reachable from u_adj without crossing the node u.
(Bi)Connected components information maintained during the SyncPlan algorithm.
Class for the representation of nodes.
int findCycles(Graph &G, node u, const std::function< adjEntry(adjEntry)> &mapping, List< List< adjEntry >> &cycles, std::ostream &log)
Find all cycles the permutation mapping defines on the order of the adjEntries of u and put all adjEn...
The main code for modelling and solving Synchronized Planarity instances.