|
| UpwardPlanRep () |
| standart constructor More...
|
|
| UpwardPlanRep (const CombinatorialEmbedding &Gamma) |
|
| UpwardPlanRep (const GraphCopy &GC, adjEntry adj_ext) |
|
| UpwardPlanRep (const UpwardPlanRep &UPR) |
| copy constructor More...
|
|
virtual | ~UpwardPlanRep () |
|
void | augment () |
| convert to a single source single sink graph (result is not necessary a st-graph!). More...
|
|
bool | augmented () const |
| return true if graph is augmented to a single source single sink graph More...
|
|
adjEntry | getAdjEntry (const CombinatorialEmbedding &Gamma, node v, face f) const |
| return the adjEntry of v which right face is f. More...
|
|
CombinatorialEmbedding & | getEmbedding () |
|
const CombinatorialEmbedding & | getEmbedding () const |
| return the upward planar embedding More...
|
|
node | getSuperSink () const |
|
node | getSuperSource () const |
|
void | insertEdgePathEmbedded (edge eOrig, SList< adjEntry > crossedEdges, EdgeArray< int > &cost) |
| same as insertEdgePath, but assumes that the graph is embedded More...
|
|
bool | isSinkArc (edge e) const |
|
bool | isSourceArc (edge e) const |
|
adjEntry | leftInEdge (node v) const |
|
int | numberOfCrossings () const |
|
UpwardPlanRep & | operator= (const UpwardPlanRep ©) |
| Assignment operator. More...
|
|
void | outputFaces (const CombinatorialEmbedding &embedding) const |
|
adjEntry | sinkSwitchOf (node v) |
| 0 if node v is not a sink switch (not the top sink switch !!) of an internal face. else v is sink-switch of the right face of the adjEntry. More...
|
|
| GraphCopy () |
| Default constructor (does nothing!). More...
|
|
| GraphCopy (const Graph &G) |
| Creates a graph copy of G . More...
|
|
| GraphCopy (const GraphCopy &GC) |
| Copy constructor. More...
|
|
virtual | ~GraphCopy () |
|
const Graph & | original () const |
| Returns a reference to the original graph. More...
|
|
node | original (node v) const |
| Returns the node in the original graph corresponding to v . More...
|
|
edge | original (edge e) const |
| Returns the edge in the original graph corresponding to e . More...
|
|
adjEntry | original (adjEntry adj) const |
| Returns the adjacency entry in the original graph corresponding to adj . More...
|
|
node | copy (node v) const |
| Returns the node in the graph copy corresponding to v . More...
|
|
const List< edge > & | chain (edge e) const |
| Returns the list of edges coresponding to edge e . More...
|
|
edge | copy (edge e) const |
| Returns the first edge in the list of edges coresponding to edge e . More...
|
|
adjEntry | copy (adjEntry adj) const |
| Returns the adjacency entry in the copy graph corresponding to adj . More...
|
|
bool | isDummy (node v) const |
| Returns true iff v has no corresponding node in the original graph. More...
|
|
bool | isDummy (edge e) const |
| Returns true iff e has no corresponding edge in the original graph. More...
|
|
bool | isReversed (edge e) const |
| Returns true iff edge e has been reversed. More...
|
|
bool | isReversedCopyEdge (edge e) const |
| Returns true iff e is reversed w.r.t. More...
|
|
node | newNode (node vOrig) |
| Creates a new node in the graph copy with original node vOrig . More...
|
|
virtual void | delNode (node v) override |
| Removes node v and all its adjacent edges cleaning-up their corresponding lists of original edges. More...
|
|
virtual void | delEdge (edge e) override |
| Removes edge e and clears the list of edges corresponding to e's original edge. More...
|
|
virtual void | clear () override |
| Removes all nodes and all edges from the graph. More...
|
|
virtual edge | split (edge e) override |
| Splits edge e . More...
|
|
void | unsplit (edge eIn, edge eOut) override |
| Undoes a previous split operation. More...
|
|
edge | newEdge (edge eOrig) |
| Creates a new edge (v,w) with original edge eOrig. More...
|
|
void | setEdge (edge eOrig, edge eCopy) |
| sets eOrig to be the corresponding original edge of eCopy and vice versa More...
|
|
bool | embed () |
| Embeds the graph copy. More...
|
|
void | removePseudoCrossings () |
| Removes all crossing nodes which are actually only two "touching" edges. More...
|
|
bool | hasSameEdgesCrossings () const |
| Returns whether there are two edges in the GraphCopy that cross each other multiple times. More...
|
|
bool | hasAdjacentEdgesCrossings () const |
| Returns whether the GraphCopy contains at least one crossing of two adjacent edges. More...
|
|
bool | hasNonSimpleCrossings () const |
| Returns whether the GraphCopy contains crossings that will result in a non-simple drawing. More...
|
|
void | removeNonSimpleCrossings (SListPure< edge > &edgesToCheck, DynamicDualGraph *dualGraph=nullptr) |
| Removes all non-simple cossings involving edges from edgesToCheck (see hasNonSimpleCrossings() for a definition of non-simple crossings). More...
|
|
void | removeNonSimpleCrossings (DynamicDualGraph *dualGraph=nullptr) |
| Removes all non-simple cossings (see hasNonSimpleCrossings() for a definition of non-simple crossings). More...
|
|
void | removeNonSimpleCrossings (node origNode, DynamicDualGraph *dualGraph=nullptr) |
| Removes all non-simple cossings involving edges incident to origNode (see hasNonSimpleCrossings() for a definition of non-simple crossings). More...
|
|
void | insertEdgePath (edge eOrig, const SList< adjEntry > &crossedEdges) |
| Re-inserts edge eOrig by "crossing" the edges in crossedEdges . More...
|
|
void | insertEdgePath (node srcOrig, node tgtOrig, const SList< adjEntry > &crossedEdges) |
| Special version (for FixedEmbeddingUpwardEdgeInserter only). More...
|
|
void | removeEdgePath (edge eOrig) |
| Removes the complete edge path for edge eOrig . More...
|
|
edge | insertCrossing (edge &crossingEdge, edge crossedEdge, bool rightToLeft) |
| Inserts crossings between two copy edges. 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...
|
|
edge | newEdge (node v, adjEntry adj, edge eOrig, CombinatorialEmbedding &E) |
| Creates a new edge with original edge eOrig in an embedding E . More...
|
|
void | setOriginalEmbedding () |
| Sets the embedding of the graph copy to the embedding of the original graph. More...
|
|
void | insertEdgePathEmbedded (edge eOrig, CombinatorialEmbedding &E, const SList< adjEntry > &crossedEdges) |
| Re-inserts edge eOrig by "crossing" the edges in crossedEdges in embedding E . More...
|
|
void | insertEdgePathEmbedded (edge eOrig, CombinatorialEmbedding &E, DynamicDualGraph &dual, const SList< adjEntry > &crossedEdges) |
|
void | removeEdgePathEmbedded (CombinatorialEmbedding &E, edge eOrig, FaceSet< false > &newFaces) |
| Removes the complete edge path for edge eOrig while preserving the embedding. More...
|
|
void | removeEdgePathEmbedded (CombinatorialEmbedding &E, DynamicDualGraph &dual, edge eOrig) |
|
void | init (const Graph &G) |
| Re-initializes the copy using the graph G . More...
|
|
void | createEmpty (const Graph &G) |
| Associates the graph copy with G , but does not create any nodes or edges. More...
|
|
void | initByCC (const CCsInfo &info, int cc, EdgeArray< edge > &eCopy) |
| Initializes the graph copy for the nodes in component cc . More...
|
|
void | initByNodes (const List< node > &origNodes, EdgeArray< edge > &eCopy) |
| Initializes the graph copy for the nodes in a component. More...
|
|
void | initByActiveNodes (const List< node > &nodeList, const NodeArray< bool > &activeNodes, EdgeArray< edge > &eCopy) |
| Initializes the graph copy for the nodes in nodeList . More...
|
|
GraphCopy & | operator= (const GraphCopy &GC) |
| Assignment operator. 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...
|
|
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...
|
|
void | unsplit (node u) |
| 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...
|
|
|
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 | removeUnnecessaryCrossing (adjEntry adjA1, adjEntry adjA2, adjEntry adjB1, adjEntry adjB2) |
|
void | removeUnnecessaryCrossing (adjEntry adj, DynamicDualGraph *dualGraph) |
| Removes the pseudo crossing that adj belongs to. More...
|
|
void | removeAdjacentEdgesCrossing (adjEntry adj1, adjEntry adj2, DynamicDualGraph *dualGraph) |
| Removes the crossing of the two adjacent edges adj1->theEdge() and adj2->theEdge(). More...
|
|
void | removeSameEdgesCrossing (adjEntry adjFirstCrossing1, adjEntry adjFirstCrossing2, adjEntry adjSecondCrossing1, adjEntry adjSecondCrossing2, DynamicDualGraph *dualGraph) |
| Removes the two crossings given by the adjEntries, assuming that both crossings stem from the same two edges. More...
|
|
void | swapOriginalEdgesAtCrossing (adjEntry adjCopy1, adjEntry adjCopy2, DynamicDualGraph *dual=nullptr) |
| Swaps the original edges from adjCopy1 up to the common node of {adjCopy1, adjCopy2} with the original edges from adjCopy2 up to the same common node. More...
|
|
void | swapOriginalEdgesBetweenCrossings (adjEntry adjFirstCrossing1, adjEntry adjFirstCrossing2, adjEntry adjSecondCrossing1, adjEntry adjSecondCrossing2, DynamicDualGraph *dual=nullptr) |
| Swaps the original edges from adjFirstCrossing1 up to adjSecondCrossing1->theNode() with the original edges from adjFirstCrossing2 up to adjSecondCrossing2->theNode(). More...
|
|
void | setOriginalEdgeAlongCrossings (adjEntry adjCopy1, adjEntry adjCopy2, node vCopy, edge eOrig1, edge eOrig2) |
| Sets the original edges from adjCopy1 up to vCopy to eOrig2, and the original edges from adjCopy2 up to vCopy to eOrig1. 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...
|
|