#include <ogdf/upward/FaceSinkGraph.h>
Public Member Functions | |
FaceSinkGraph () | |
default constructor (dummy) More... | |
FaceSinkGraph (const ConstCombinatorialEmbedding &E, node s) | |
constructor (we assume that the original graph is connected!) More... | |
bool | containsSource (node v) const |
node | faceNodeOf (edge e) |
node | faceNodeOf (face f) |
void | init (const ConstCombinatorialEmbedding &E, node s) |
const ConstCombinatorialEmbedding & | originalEmbedding () const |
returns a reference to the embedding E of the original graph G More... | |
face | originalFace (node v) const |
returns the face in E corresponding to node v in the face-sink graph, 0 if v corresponds to a sink-switch More... | |
const Graph & | originalGraph () const |
return a reference to the original graph G More... | |
node | originalNode (node v) const |
returns the sink-switch in G corresponding to node v in the face-sink graph, 0 if v corresponds to a face More... | |
node | possibleExternalFaces (SList< face > &externalFaces) |
returns the list of faces f in E such that there exists an upward-planar drawing realizing E with f as external face a node v_T in tree T is returned as representative. v_T is 0 if no possible external face exists. More... | |
void | sinkSwitches (FaceArray< List< adjEntry > > &faceSwitches) |
compute the sink switches of all faces. More... | |
void | stAugmentation (node h, Graph &G, node &superSink, SList< edge > &augmentedEdges) |
augments G to an st-planar graph More... | |
void | stAugmentation (node h, Graph &G, SList< node > &augmentedNodes, SList< edge > &augmentedEdges) |
augments G to an st-planar graph (original implementation) More... | |
![]() | |
bool | empty () const |
Returns true iff the graph is empty, i.e., contains no nodes. More... | |
int | numberOfNodes () const |
Returns the number of nodes in the graph. More... | |
int | numberOfEdges () const |
Returns the number of edges in the graph. More... | |
int | maxNodeIndex () const |
Returns the largest used node index. More... | |
int | maxEdgeIndex () const |
Returns the largest used edge index. More... | |
int | maxAdjEntryIndex () const |
Returns the largest used adjEntry index. More... | |
int | nodeArrayTableSize () const |
Returns the table size of node arrays associated with this graph. More... | |
int | edgeArrayTableSize () const |
Returns the table size of edge arrays associated with this graph. More... | |
int | adjEntryArrayTableSize () const |
Returns the table size of adjEntry arrays associated with this graph. More... | |
node | firstNode () const |
Returns the first node in the list of all nodes. More... | |
node | lastNode () const |
Returns the last node in the list of all nodes. More... | |
edge | firstEdge () const |
Returns the first edge in the list of all edges. More... | |
edge | lastEdge () const |
Returns the last edge in the list of all edges. More... | |
node | chooseNode (std::function< bool(node)> includeNode=[](node) { return true;}, bool isFastTest=true) const |
Returns a random node. More... | |
edge | chooseEdge (std::function< bool(edge)> includeEdge=[](edge) { return true;}, bool isFastTest=true) const |
Returns a random edge. More... | |
template<class CONTAINER > | |
void | allNodes (CONTAINER &nodeContainer) const |
Returns a container with all nodes of the graph. More... | |
template<class CONTAINER > | |
void | allEdges (CONTAINER &edgeContainer) const |
Returns a container with all edges of the graph. More... | |
node | newNode () |
Creates a new node and returns it. More... | |
node | newNode (int index) |
Creates a new node with predefined index and returns it. More... | |
edge | newEdge (node v, node w) |
Creates a new edge (v ,w ) and returns it. More... | |
edge | newEdge (node v, node w, int index) |
Creates a new edge (v ,w ) with predefined index and returns it. More... | |
edge | newEdge (adjEntry adjSrc, adjEntry adjTgt, Direction dir=Direction::after) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
edge | newEdge (node v, adjEntry adjTgt) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
edge | newEdge (adjEntry adjSrc, node w) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
virtual void | delNode (node v) |
Removes node v and all incident edges from the graph. More... | |
virtual void | delEdge (edge e) |
Removes edge e from the graph. More... | |
virtual void | clear () |
Removes all nodes and all edges from the graph. More... | |
void | insert (const Graph &G, NodeArray< node > &nodeMap) |
Inserts Graph G as a subgraph into this Graph. More... | |
void | insert (const Graph &G) |
Inserts Graph G as a subgraph into this Graph. More... | |
virtual edge | split (edge e) |
Splits edge e into two edges introducing a new node. More... | |
void | unsplit (node u) |
Undoes a split operation. More... | |
virtual void | unsplit (edge eIn, edge eOut) |
Undoes a split operation. More... | |
node | splitNode (adjEntry adjStartLeft, adjEntry adjStartRight) |
Splits a node while preserving the order of adjacency entries. More... | |
node | contract (edge e, bool keepSelfLoops=false) |
Contracts edge e while preserving the order of adjacency entries. More... | |
void | move (edge e, adjEntry adjSrc, Direction dirSrc, adjEntry adjTgt, Direction dirTgt) |
Moves edge e to a different adjacency list. More... | |
void | moveTarget (edge e, node w) |
Moves the target node of edge e to node w . More... | |
void | moveTarget (edge e, adjEntry adjTgt, Direction dir) |
Moves the target node of edge e to a specific position in an adjacency list. More... | |
void | moveSource (edge e, node w) |
Moves the source node of edge e to node w . More... | |
void | moveSource (edge e, adjEntry adjSrc, Direction dir) |
Moves the source node of edge e to a specific position in an adjacency list. More... | |
edge | searchEdge (node v, node w, bool directed=false) const |
Searches and returns an edge connecting nodes v and w in time O( min(deg(v ), deg(w ))). More... | |
void | reverseEdge (edge e) |
Reverses the edge e , i.e., exchanges source and target node. More... | |
void | reverseAllEdges () |
Reverses all edges in the graph. More... | |
template<class NODELIST > | |
void | collapse (NODELIST &nodesToCollapse) |
Collapses all nodes in the list nodesToCollapse to the first node in the list. More... | |
template<class ADJ_ENTRY_LIST > | |
void | sort (node v, const ADJ_ENTRY_LIST &newOrder) |
Sorts the adjacency list of node v according to newOrder . More... | |
void | reverseAdjEdges (node v) |
Reverses the adjacency list of v . More... | |
void | moveAdj (adjEntry adjMove, Direction dir, adjEntry adjPos) |
Moves adjacency entry adjMove before or after adjPos . More... | |
void | moveAdjAfter (adjEntry adjMove, adjEntry adjAfter) |
Moves adjacency entry adjMove after adjAfter . More... | |
void | moveAdjBefore (adjEntry adjMove, adjEntry adjBefore) |
Moves adjacency entry adjMove before adjBefore . More... | |
void | reverseAdjEdges () |
Reverses all adjacency lists. More... | |
void | swapAdjEdges (adjEntry adj1, adjEntry adj2) |
Exchanges two entries in an adjacency list. More... | |
int | genus () const |
Returns the genus of the graph's embedding. More... | |
bool | representsCombEmbedding () const |
Returns true iff the graph represents a combinatorial embedding. More... | |
ListIterator< NodeArrayBase * > | registerArray (NodeArrayBase *pNodeArray) const |
Registers a node array. More... | |
ListIterator< EdgeArrayBase * > | registerArray (EdgeArrayBase *pEdgeArray) const |
Registers an edge array. More... | |
ListIterator< AdjEntryArrayBase * > | registerArray (AdjEntryArrayBase *pAdjArray) const |
Registers an adjEntry array. More... | |
ListIterator< GraphObserver * > | registerStructure (GraphObserver *pStructure) const |
Registers a graph observer (e.g. a ClusterGraph). More... | |
void | unregisterArray (ListIterator< NodeArrayBase * > it) const |
Unregisters a node array. More... | |
void | unregisterArray (ListIterator< EdgeArrayBase * > it) const |
Unregisters an edge array. More... | |
void | unregisterArray (ListIterator< AdjEntryArrayBase * > it) const |
Unregisters an adjEntry array. More... | |
void | unregisterStructure (ListIterator< GraphObserver * > it) const |
Unregisters a graph observer. More... | |
template<class ArrayBase > | |
void | moveRegisterArray (ListIterator< ArrayBase * > it, ArrayBase *pArray) const |
Move the registration it of an graph element array to pArray (used with move semantics for graph element arrays). More... | |
void | resetEdgeIdCount (int maxId) |
Resets the edge id count to maxId . More... | |
Graph () | |
Constructs an empty graph. More... | |
Graph (const Graph &G) | |
Constructs a graph that is a copy of G . More... | |
virtual | ~Graph () |
Destructor. More... | |
Graph & | operator= (const Graph &G) |
Assignment operator. More... | |
Private Member Functions | |
node | checkForest () |
checks if the face-sink graph is a forest with 1) there is exactly one tree T containing no internal vertex of G 2) all other trees contain exactly one internal vertex of G a node in tree T is returned as representative More... | |
bool | dfsCheckForest (node v, node parent, NodeArray< bool > &visited, int &nInternalVertices) |
performs dfs-traversal and checks for backwards edges More... | |
node | dfsFaceNodeOf (node v, node parent, face f1, face f2) |
node | dfsStAugmentation (node v, node parent, Graph &G, SList< edge > &augmentedEdges) |
node | dfsStAugmentation (node v, node parent, Graph &G, SList< node > &augmentedNodes, SList< edge > &augmentedEdges) |
void | doInit () |
constructs face-sink graph More... | |
void | gatherExternalFaces (node v, node parent, SList< face > &externalFaces) |
builds list of possible external faces More... | |
Private Attributes | |
NodeArray< bool > | m_containsSource |
contains face node the source ? More... | |
NodeArray< face > | m_originalFace |
original face in E More... | |
NodeArray< node > | m_originalNode |
original node in G More... | |
const ConstCombinatorialEmbedding * | m_pE |
associated embedding of graph G More... | |
node | m_source |
the single source More... | |
node | m_T |
representative of unique tree T More... | |
Additional Inherited Members | |
![]() | |
enum | EdgeType { EdgeType::association = 0, EdgeType::generalization = 1, EdgeType::dependency = 2 } |
The type of edges (only used in derived classes). More... | |
enum | NodeType { NodeType::vertex = 0, NodeType::dummy = 1, NodeType::generalizationMerger = 2, NodeType::generalizationExpander = 3, NodeType::highDegreeExpander = 4, NodeType::lowDegreeExpander = 5, NodeType::associationClass = 6 } |
The type of nodes. More... | |
using | node_iterator = internal::GraphIterator< node > |
Provides a bidirectional iterator to a node in a graph. More... | |
using | edge_iterator = internal::GraphIterator< edge > |
Provides a bidirectional iterator to an edge in a graph. More... | |
using | adjEntry_iterator = internal::GraphIterator< adjEntry > |
Provides a bidirectional iterator to an entry in an adjacency list. More... | |
![]() | |
internal::GraphObjectContainer< NodeElement > | nodes |
The container containing all node objects. More... | |
internal::GraphObjectContainer< EdgeElement > | edges |
The container containing all edge objects. More... | |
![]() | |
void | construct (const Graph &G, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge) |
void | assign (const Graph &G, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge) |
void | constructInitByNodes (const Graph &G, const List< node > &nodeList, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge) |
Constructs a copy of the subgraph of G induced by nodeList . More... | |
void | constructInitByActiveNodes (const List< node > &nodeList, const NodeArray< bool > &activeNodes, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge) |
void | constructInitByCC (const CCsInfo &info, int cc, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge) |
Constructs a copy of connected component cc in info . More... | |
Definition at line 43 of file FaceSinkGraph.h.
ogdf::FaceSinkGraph::FaceSinkGraph | ( | const ConstCombinatorialEmbedding & | E, |
node | s | ||
) |
constructor (we assume that the original graph is connected!)
|
inline |
default constructor (dummy)
Definition at line 50 of file FaceSinkGraph.h.
|
private |
checks if the face-sink graph is a forest with 1) there is exactly one tree T containing no internal vertex of G 2) all other trees contain exactly one internal vertex of G a node in tree T is returned as representative
|
inline |
Definition at line 80 of file FaceSinkGraph.h.
|
private |
performs dfs-traversal and checks for backwards edges
|
private |
|
private |
|
private |
constructs face-sink graph
Definition at line 95 of file FaceSinkGraph.h.
Definition at line 101 of file FaceSinkGraph.h.
|
private |
builds list of possible external faces
all faces in tree T containing the single source s) by a dfs traversal of T
void ogdf::FaceSinkGraph::init | ( | const ConstCombinatorialEmbedding & | E, |
node | s | ||
) |
|
inline |
returns a reference to the embedding E of the original graph G
Definition at line 62 of file FaceSinkGraph.h.
returns the face in E corresponding to node v in the face-sink graph, 0 if v corresponds to a sink-switch
Definition at line 74 of file FaceSinkGraph.h.
|
inline |
return a reference to the original graph G
Definition at line 57 of file FaceSinkGraph.h.
returns the sink-switch in G corresponding to node v in the face-sink graph, 0 if v corresponds to a face
Definition at line 68 of file FaceSinkGraph.h.
returns the list of faces f in E such that there exists an upward-planar drawing realizing E with f as external face a node v_T in tree T is returned as representative. v_T is 0 if no possible external face exists.
Definition at line 87 of file FaceSinkGraph.h.
compute the sink switches of all faces.
void ogdf::FaceSinkGraph::stAugmentation | ( | node | h, |
Graph & | G, | ||
node & | superSink, | ||
SList< edge > & | augmentedEdges | ||
) |
augments G to an st-planar graph
(introduces only one new node as super sink into G)
void ogdf::FaceSinkGraph::stAugmentation | ( | node | h, |
Graph & | G, | ||
SList< node > & | augmentedNodes, | ||
SList< edge > & | augmentedEdges | ||
) |
augments G to an st-planar graph (original implementation)
introduces also new nodes into G corresponding to face-nodes in face sink graph)
|
private |
contains face node the source ?
Definition at line 172 of file FaceSinkGraph.h.
original face in E
Definition at line 171 of file FaceSinkGraph.h.
original node in G
Definition at line 170 of file FaceSinkGraph.h.
|
private |
associated embedding of graph G
Definition at line 166 of file FaceSinkGraph.h.
|
private |
the single source
Definition at line 167 of file FaceSinkGraph.h.
|
private |
representative of unique tree T
Definition at line 168 of file FaceSinkGraph.h.