|
| void | writeGML (const char *fileName, const OrthoRep &OR, const GridLayout &drawing) |
| |
| void | writeGML (std::ostream &os, const OrthoRep &OR, const GridLayout &drawing) |
| |
|
| | PlanRep (const Graph &G) |
| | Creates a planarized representation of graph G.
|
| |
| | PlanRep (const GraphAttributes &AG) |
| | Creates a planarized representation of graph AG.
|
| |
|
Planarized representations provide a mechanism for always representing a copy of a single component of the original graph.
|
| int | numberOfCCs () const |
| | Returns the number of connected components in the original graph.
|
| |
| int | currentCC () const |
| | Returns the index of the current connected component (-1 if not yet initialized).
|
| |
| const CCsInfo & | ccInfo () const |
| | Returns the connected components info structure.
|
| |
| int | numberOfNodesInCC () const |
| | Returns the number of nodes in the current connected component.
|
| |
| int | numberOfNodesInCC (int cc) const |
| | Returns the number of nodes in connected component cc.
|
| |
| node | v (int i) const |
| | Returns node i in the list of all original nodes.
|
| |
| edge | e (int i) const |
| | Returns edge i in the list of all original edges.
|
| |
| int | startNode () const |
| | Returns the index of the first node in this connected component.
|
| |
| int | startNode (int cc) const |
| | Returns the index of the first node in connected component cc.
|
| |
| int | stopNode () const |
| | Returns the index of (one past) the last node in this connected component.
|
| |
| int | stopNode (int cc) const |
| | Returns the index of (one past) the last node in connected component cc.
|
| |
| int | startEdge () const |
| | Returns the index of the first edge in this connected component.
|
| |
| int | stopEdge () const |
| | Returns the index of (one past) the last edge in this connected component.
|
| |
| void | initCC (int cc) |
| | Initializes the planarized representation for connected component cc.
|
| |
|
| adjEntry | expandAdj (node v) const |
| | Returns the adjacency entry of a node of an expanded face.
|
| |
| adjEntry & | expandAdj (node v) |
| |
|
| adjEntry | boundaryAdj (node v) const |
| | Returns the adjacency entry of the first edge of the inserted boundary at a center node (original) of a clique, 0 if no boundary exists.
|
| |
| adjEntry & | boundaryAdj (node v) |
| | Returns a reference to the adjacency entry of the first edge of the inserted boundary at a center node (original) of a clique, 0 if no boundary exists.
|
| |
| void | setCliqueBoundary (edge e) |
| |
| bool | isCliqueBoundary (edge e) const |
| |
|
| Graph::NodeType | typeOf (node v) const |
| | Returns the type of node v.
|
| |
| Graph::NodeType & | typeOf (node v) |
| | Returns a reference to the type of node v.
|
| |
| bool | isVertex (node v) const |
| | Returns true if the node represents a "real" object in the original graph.
|
| |
| nodeType | nodeTypeOf (node v) |
| | Returns the extended node type of v.
|
| |
| void | setCrossingType (node v) |
| | Classifies node v as a crossing.
|
| |
| bool | isCrossingType (node v) const |
| | Returns true iff node v is classified as a crossing.
|
| |
|
| EdgeType | typeOf (edge e) const |
| | Returns the type of edge e.
|
| |
| EdgeType & | typeOf (edge e) |
| | Returns a reference to the type of edge e.
|
| |
| edgeType & | oriEdgeTypes (edge e) |
| | Returns a reference to the type of original edge e.
|
| |
| edgeType | edgeTypeOf (edge e) const |
| | Returns the new type field of e.
|
| |
| edgeType & | edgeTypes (edge e) |
| | Returns a reference to the new type field of e.
|
| |
| void | setEdgeTypeOf (edge e, edgeType et) |
| | Sets the new type field of edge e to et.
|
| |
| void | setType (edge e, EdgeType et) |
| | Set both type values of e at once.
|
| |
| bool | isGeneralization (edge e) const |
| | Returns true iff edge e is classified as generalization.
|
| |
| void | setGeneralization (edge e) |
| | Classifies edge e as generalization (primary type).
|
| |
| bool | isDependency (edge e) const |
| | Returns true iff edge e is classified as dependency.
|
| |
| void | setDependency (edge e) |
| | Classifies edge e as dependency (primary type).
|
| |
| void | setAssociation (edge e) |
| | Classifies edge e as association (primary type).
|
| |
| void | setExpansion (edge e) |
| | Classifies edge e as expansion edge (secondary type).
|
| |
| bool | isExpansion (edge e) const |
| | Returns true iff edge e is classified as expansion edge.
|
| |
| bool | isBoundary (edge e) const |
| | Returns true iff edge e is a clique boundary.
|
| |
| void | setAssClass (edge e) |
| | Classifies edge e as connection at an association class (tertiary type).
|
| |
| bool | isAssClass (edge e) const |
| | Returns true iff edge e is classified as connection at an association class.
|
| |
| void | setBrother (edge e) |
| | Classifies edge e as connection between hierarchy neighbours (fourth level type).
|
| |
| void | setHalfBrother (edge e) |
| | Classifies edge e as connection between ... (fourth level type).
|
| |
| bool | isBrother (edge e) const |
| | Returns true if edge e is classified as brother.
|
| |
| bool | isHalfBrother (edge e) const |
| | Returns true if edge e is classified as half-brother.
|
| |
| edgeType | edgeTypeAND (edge e, edgeType et) |
| | Sets type of edge e to current type (bitwise) AND et.
|
| |
| edgeType | edgeTypeOR (edge e, edgeType et) |
| | Sets type of edge e to current type (bitwise) OR et.
|
| |
| void | setPrimaryType (edge e, edgeType et) |
| | Sets primary edge type of edge e to primary edge type in et (deletes old primary value).
|
| |
| void | setPrimaryType (edge e, UMLEdgeTypeConstants et) |
| | Sets primary edge type of edge e to primary edge type in et (deletes old primary value).
|
| |
| void | setSecondaryType (edge e, edgeType et) |
| | Sets secondary edge type of edge e to primary edge type in et.
|
| |
| edgeType | edgeTypePrimaryAND (edge e, edgeType et) |
| | Sets primary type of e to bitwise AND of et's primary value and old value.
|
| |
| edgeType | edgeTypePrimaryOR (edge e, edgeType et) |
| | Sets primary type of e to bitwise OR of et's primary value and old value.
|
| |
| void | setUserType (edge e, edgeType et) |
| | Sets user defined type locally.
|
| |
| bool | isUserType (edge e, edgeType et) const |
| | Returns user defined type.
|
| |
| void | setExpansionEdge (edge e, int expType) |
| | Sets the expansion edge type of e to expType.
|
| |
| bool | isExpansionEdge (edge e) const |
| | Returns if e is an expansion edge.
|
| |
| int | expansionType (edge e) const |
| | Returns the expansion edge type of e.
|
| |
| bool | isDegreeExpansionEdge (edge e) const |
| | Returns if e is a degree expansion edge.
|
| |
|
These methods provide easy access to attributes of original nodes and edges.
|
| const NodeArray< double > & | widthOrig () const |
| | Gives access to the node array of the widths of original nodes.
|
| |
| double | widthOrig (node v) const |
| | Returns the width of original node v.
|
| |
| const NodeArray< double > & | heightOrig () const |
| | Gives access to the node array of the heights of original nodes.
|
| |
| double | heightOrig (node v) const |
| | Returns the height of original node v.
|
| |
| EdgeType | typeOrig (edge e) const |
| | Returns the type of original edge e.
|
| |
| const GraphAttributes & | getGraphAttributes () const |
| | Returns the graph attributes of the original graph (the pointer may be 0).
|
| |
|
| virtual void | expand (bool lowDegreeExpand=false) |
| |
| void | expandLowDegreeVertices (OrthoRep &OR) |
| |
| void | collapseVertices (const OrthoRep &OR, Layout &drawing) |
| |
| void | collapseVertices (const OrthoRep &OR, GridLayout &drawing) |
| |
| void | removeCrossing (node v) |
| |
| void | insertBoundary (node center, adjEntry &adjExternal) |
| |
|
| virtual edge | split (edge e) override |
| | Splits edge e.
|
| |
| node | expandedNode (node v) const |
| |
| void | setExpandedNode (node v, node w) |
| |
|
| node | newCopy (node vOrig, Graph::NodeType vType) |
| | Creates a new node with node type vType in the planarized representation.
|
| |
| edge | newCopy (node v, adjEntry adjAfter, edge eOrig) |
| | Creates a new edge in the planarized representation.
|
| |
| edge | newCopy (node v, adjEntry adjAfter, edge eOrig, CombinatorialEmbedding &E) |
| | Creates a new edge in the planarized representation while updating the embedding E.
|
| |
|
| void | insertEdgePath (edge eOrig, const SList< adjEntry > &crossedEdges) |
| | Re-inserts edge eOrig by "crossing" the edges in crossedEdges.
|
| |
| void | insertEdgePathEmbedded (edge eOrig, CombinatorialEmbedding &E, const SList< adjEntry > &crossedEdges) |
| | Same as insertEdgePath, but for embedded graphs.
|
| |
| void | removeEdgePathEmbedded (CombinatorialEmbedding &E, edge eOrig, FaceSet< false > &newFaces) |
| | Removes the complete edge path for edge eOrig while preserving the embedding.
|
| |
| edge | insertCrossing (edge &crossingEdge, edge crossedEdge, bool topDown) |
| | Inserts crossings between two copy edges.
|
| |
|
These methods realize a mechanism for temporarily removing degree-1 nodes.
|
| void | removeDeg1Nodes (ArrayBuffer< Deg1RestoreInfo > &S, const NodeArray< bool > &mark) |
| | Removes all marked degree-1 nodes from the graph copy and stores restore information in S.
|
| |
| void | restoreDeg1Nodes (ArrayBuffer< Deg1RestoreInfo > &S, List< node > °1s) |
| | Restores degree-1 nodes previously removed with removeDeg1Nodes().
|
| |
| | GraphCopy () |
| | Default constructor (does nothing!).
|
| |
| | GraphCopy (const Graph &G) |
| | Creates a graph copy of G.
|
| |
| | GraphCopy (const GraphCopy &GC) |
| | Copy constructor.
|
| |
| virtual | ~GraphCopy () |
| |
| const Graph & | original () const |
| | Returns a reference to the original graph.
|
| |
| node | original (node v) const |
| | Returns the node in the original graph corresponding to v.
|
| |
| edge | original (edge e) const |
| | Returns the edge in the original graph corresponding to e.
|
| |
| adjEntry | original (adjEntry adj) const |
| | Returns the adjacency entry in the original graph corresponding to adj.
|
| |
| node | copy (node v) const |
| | Returns the node in the graph copy corresponding to v.
|
| |
| const List< edge > & | chain (edge e) const |
| | Returns the list of edges coresponding to edge e.
|
| |
| edge | copy (edge e) const |
| | Returns the first edge in the list of edges coresponding to edge e.
|
| |
| adjEntry | copy (adjEntry adj) const |
| | Returns the adjacency entry in the copy graph corresponding to adj.
|
| |
| bool | isDummy (node v) const |
| | Returns true iff v has no corresponding node in the original graph.
|
| |
| bool | isDummy (edge e) const |
| | Returns true iff e has no corresponding edge in the original graph.
|
| |
| bool | isReversed (edge e) const |
| | Returns true iff edge e has been reversed.
|
| |
| bool | isReversedCopyEdge (edge e) const |
| | Returns true iff e is reversed w.r.t.
|
| |
| node | newNode (node vOrig) |
| | Creates a new node in the graph copy with original node vOrig.
|
| |
| virtual void | delNode (node v) override |
| | Removes node v and all its adjacent edges cleaning-up their corresponding lists of original edges.
|
| |
| virtual void | delEdge (edge e) override |
| | Removes edge e and clears the list of edges corresponding to e's original edge.
|
| |
| virtual void | clear () override |
| | Removes all nodes and all edges from the graph.
|
| |
| void | unsplit (edge eIn, edge eOut) override |
| | Undoes a previous split operation.
|
| |
| edge | newEdge (edge eOrig) |
| | Creates a new edge (v,w) with original edge eOrig.
|
| |
| void | setEdge (edge eOrig, edge eCopy) |
| | sets eOrig to be the corresponding original edge of eCopy and vice versa
|
| |
| bool | embed () |
| | Embeds the graph copy.
|
| |
| void | removePseudoCrossings () |
| | Removes all crossing nodes which are actually only two "touching" edges.
|
| |
| bool | hasSameEdgesCrossings () const |
| | Returns whether there are two edges in the GraphCopy that cross each other multiple times.
|
| |
| bool | hasAdjacentEdgesCrossings () const |
| | Returns whether the GraphCopy contains at least one crossing of two adjacent edges.
|
| |
| bool | hasNonSimpleCrossings () const |
| | Returns whether the GraphCopy contains crossings that will result in a non-simple drawing.
|
| |
| 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).
|
| |
| void | removeNonSimpleCrossings (DynamicDualGraph *dualGraph=nullptr) |
| | Removes all non-simple cossings (see hasNonSimpleCrossings() for a definition of non-simple crossings).
|
| |
| 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).
|
| |
| void | insertEdgePath (edge eOrig, const SList< adjEntry > &crossedEdges) |
| | Re-inserts edge eOrig by "crossing" the edges in crossedEdges.
|
| |
| void | insertEdgePath (node srcOrig, node tgtOrig, const SList< adjEntry > &crossedEdges) |
| | Special version (for FixedEmbeddingUpwardEdgeInserter only).
|
| |
| void | removeEdgePath (edge eOrig) |
| | Removes the complete edge path for edge eOrig.
|
| |
| edge | insertCrossing (edge &crossingEdge, edge crossedEdge, bool rightToLeft) |
| | Inserts crossings between two copy edges.
|
| |
| node | newNode () |
| | Creates a new node and returns it.
|
| |
| node | newNode (int index) |
| | Creates a new node with predefined index and returns it.
|
| |
| edge | newEdge (node v, node w) |
| | Creates a new edge (v,w) and returns it.
|
| |
| edge | newEdge (node v, node w, int index) |
| | Creates a new edge (v,w) with predefined index and returns it.
|
| |
| edge | newEdge (adjEntry adjSrc, adjEntry adjTgt, Direction dir=Direction::after) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| edge | newEdge (node v, adjEntry adjTgt) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| edge | newEdge (adjEntry adjSrc, node w) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| edge | newEdge (node v, adjEntry adj, edge eOrig, CombinatorialEmbedding &E) |
| | Creates a new edge with original edge eOrig in an embedding E.
|
| |
| void | setOriginalEmbedding () |
| | Sets the embedding of the graph copy to the embedding of the original graph.
|
| |
| void | insertEdgePathEmbedded (edge eOrig, CombinatorialEmbedding &E, const SList< adjEntry > &crossedEdges) |
| | Re-inserts edge eOrig by "crossing" the edges in crossedEdges in embedding E.
|
| |
| 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.
|
| |
| void | removeEdgePathEmbedded (CombinatorialEmbedding &E, DynamicDualGraph &dual, edge eOrig) |
| |
| void | init (const Graph &G) |
| | Re-initializes the copy using the graph G.
|
| |
| void | createEmpty (const Graph &G) |
| | Associates the graph copy with G, but does not create any nodes or edges.
|
| |
| void | initByCC (const CCsInfo &info, int cc, EdgeArray< edge > &eCopy) |
| | Initializes the graph copy for the nodes in component cc.
|
| |
| void | initByNodes (const List< node > &origNodes, EdgeArray< edge > &eCopy) |
| | Initializes the graph copy for the nodes in a component.
|
| |
| void | initByActiveNodes (const List< node > &nodeList, const NodeArray< bool > &activeNodes, EdgeArray< edge > &eCopy) |
| | Initializes the graph copy for the nodes in nodeList.
|
| |
| GraphCopy & | operator= (const GraphCopy &GC) |
| | Assignment operator.
|
| |
| | Graph () |
| | Constructs an empty graph.
|
| |
| | Graph (const Graph &G) |
| | Constructs a graph that is a copy of G.
|
| |
| virtual | ~Graph () |
| | Destructor.
|
| |
| bool | empty () const |
| | Returns true iff the graph is empty, i.e., contains no nodes.
|
| |
| int | numberOfNodes () const |
| | Returns the number of nodes in the graph.
|
| |
| int | numberOfEdges () const |
| | Returns the number of edges in the graph.
|
| |
| int | maxNodeIndex () const |
| | Returns the largest used node index.
|
| |
| int | maxEdgeIndex () const |
| | Returns the largest used edge index.
|
| |
| int | maxAdjEntryIndex () const |
| | Returns the largest used adjEntry index.
|
| |
| int | nodeArrayTableSize () const |
| | Returns the table size of node arrays associated with this graph.
|
| |
| int | edgeArrayTableSize () const |
| | Returns the table size of edge arrays associated with this graph.
|
| |
| int | adjEntryArrayTableSize () const |
| | Returns the table size of adjEntry arrays associated with this graph.
|
| |
| node | firstNode () const |
| | Returns the first node in the list of all nodes.
|
| |
| node | lastNode () const |
| | Returns the last node in the list of all nodes.
|
| |
| edge | firstEdge () const |
| | Returns the first edge in the list of all edges.
|
| |
| edge | lastEdge () const |
| | Returns the last edge in the list of all edges.
|
| |
| node | chooseNode (std::function< bool(node)> includeNode=[](node) { return true;}, bool isFastTest=true) const |
| | Returns a random node.
|
| |
| edge | chooseEdge (std::function< bool(edge)> includeEdge=[](edge) { return true;}, bool isFastTest=true) const |
| | Returns a random edge.
|
| |
| template<class CONTAINER > |
| void | allNodes (CONTAINER &nodeContainer) const |
| | Returns a container with all nodes of the graph.
|
| |
| template<class CONTAINER > |
| void | allEdges (CONTAINER &edgeContainer) const |
| | Returns a container with all edges of the graph.
|
| |
| node | newNode () |
| | Creates a new node and returns it.
|
| |
| node | newNode (int index) |
| | Creates a new node with predefined index and returns it.
|
| |
| edge | newEdge (node v, node w) |
| | Creates a new edge (v,w) and returns it.
|
| |
| edge | newEdge (node v, node w, int index) |
| | Creates a new edge (v,w) with predefined index and returns it.
|
| |
| edge | newEdge (adjEntry adjSrc, adjEntry adjTgt, Direction dir=Direction::after) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| edge | newEdge (node v, adjEntry adjTgt) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| edge | newEdge (adjEntry adjSrc, node w) |
| | Creates a new edge at predefined positions in the adjacency lists.
|
| |
| void | insert (const Graph &G, NodeArray< node > &nodeMap) |
| | Inserts Graph G as a subgraph into this Graph.
|
| |
| void | insert (const Graph &G) |
| | Inserts Graph G as a subgraph into this Graph.
|
| |
| void | unsplit (node u) |
| | Undoes a split operation.
|
| |
| node | splitNode (adjEntry adjStartLeft, adjEntry adjStartRight) |
| | Splits a node while preserving the order of adjacency entries.
|
| |
| node | contract (edge e, bool keepSelfLoops=false) |
| | Contracts edge e while preserving the order of adjacency entries.
|
| |
| void | move (edge e, adjEntry adjSrc, Direction dirSrc, adjEntry adjTgt, Direction dirTgt) |
| | Moves edge e to a different adjacency list.
|
| |
| void | moveTarget (edge e, node w) |
| | Moves the target node of edge e to node w.
|
| |
| void | moveTarget (edge e, adjEntry adjTgt, Direction dir) |
| | Moves the target node of edge e to a specific position in an adjacency list.
|
| |
| void | moveSource (edge e, node w) |
| | Moves the source node of edge e to node w.
|
| |
| void | moveSource (edge e, adjEntry adjSrc, Direction dir) |
| | Moves the source node of edge e to a specific position in an adjacency list.
|
| |
| 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 ))).
|
| |
| void | reverseEdge (edge e) |
| | Reverses the edge e, i.e., exchanges source and target node.
|
| |
| void | reverseAllEdges () |
| | Reverses all edges in the graph.
|
| |
| template<class NODELIST > |
| void | collapse (NODELIST &nodesToCollapse) |
| | Collapses all nodes in the list nodesToCollapse to the first node in the list.
|
| |
| template<class ADJ_ENTRY_LIST > |
| void | sort (node v, const ADJ_ENTRY_LIST &newOrder) |
| | Sorts the adjacency list of node v according to newOrder.
|
| |
| void | reverseAdjEdges (node v) |
| | Reverses the adjacency list of v.
|
| |
| void | moveAdj (adjEntry adjMove, Direction dir, adjEntry adjPos) |
| | Moves adjacency entry adjMove before or after adjPos.
|
| |
| void | moveAdjAfter (adjEntry adjMove, adjEntry adjAfter) |
| | Moves adjacency entry adjMove after adjAfter.
|
| |
| void | moveAdjBefore (adjEntry adjMove, adjEntry adjBefore) |
| | Moves adjacency entry adjMove before adjBefore.
|
| |
| void | reverseAdjEdges () |
| | Reverses all adjacency lists.
|
| |
| void | swapAdjEdges (adjEntry adj1, adjEntry adj2) |
| | Exchanges two entries in an adjacency list.
|
| |
| int | genus () const |
| | Returns the genus of the graph's embedding.
|
| |
| bool | representsCombEmbedding () const |
| | Returns true iff the graph represents a combinatorial embedding.
|
| |
| ListIterator< NodeArrayBase * > | registerArray (NodeArrayBase *pNodeArray) const |
| | Registers a node array.
|
| |
| ListIterator< EdgeArrayBase * > | registerArray (EdgeArrayBase *pEdgeArray) const |
| | Registers an edge array.
|
| |
| ListIterator< AdjEntryArrayBase * > | registerArray (AdjEntryArrayBase *pAdjArray) const |
| | Registers an adjEntry array.
|
| |
| ListIterator< GraphObserver * > | registerStructure (GraphObserver *pStructure) const |
| | Registers a graph observer (e.g. a ClusterGraph).
|
| |
| void | unregisterArray (ListIterator< NodeArrayBase * > it) const |
| | Unregisters a node array.
|
| |
| void | unregisterArray (ListIterator< EdgeArrayBase * > it) const |
| | Unregisters an edge array.
|
| |
| void | unregisterArray (ListIterator< AdjEntryArrayBase * > it) const |
| | Unregisters an adjEntry array.
|
| |
| void | unregisterStructure (ListIterator< GraphObserver * > it) const |
| | Unregisters a graph observer.
|
| |
| 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).
|
| |
| void | resetEdgeIdCount (int maxId) |
| | Resets the edge id count to maxId.
|
| |
| Graph & | operator= (const Graph &G) |
| | Assignment operator.
|
| |