#include <PlanRep.h>

Public Member Functions | |
| PlanRep (const Graph &G) | |
| PlanRep (const GraphAttributes &AG) | |
| Creates a planarized representation of graph AG. | |
| virtual | ~PlanRep () |
Processing connected components | |
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 List< node > & | nodesInCC (int i) const |
| Returns the list of (original) nodes in connected component i. | |
| const List< node > & | nodesInCC () const |
| Returns the list of (original) nodes in the current connected component. | |
| void | initCC (int i) |
| Initializes the planarized representation for connected component i. | |
Node expansion | |
| adjEntry | expandAdj (node v) const |
| Returns the adjacency entry of a node of an expanded face. | |
| adjEntry & | expandAdj (node v) |
Clique boundary | |
| adjEntry | boundaryAdj (node v) const |
| adjEntry & | boundaryAdj (node v) |
| void | setCliqueBoundary (edge e) |
| bool | isCliqueBoundary (edge e) |
Node types | |
| 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) |
| 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) |
| Returns true iff node v is classified as a crossing. | |
Edge types | |
| 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) |
| 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) |
| Returns true iff edge e is classified as generalization. | |
| void | setGeneralization (edge e) |
| Classifies edge e as generalization (primary type). | |
| bool | isDependency (edge e) |
| 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) |
| Returns true iff edge e is classified as expansion edge. | |
| bool | isBoundary (edge e) |
| 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) |
| 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) |
| Returns true if edge e is classified as brother. | |
| bool | isHalfBrother (edge e) |
| Returns true if edge e is classified as half-brother. | |
| edgeType | edgeTypeAND (edge e, edgeType et) |
| edgeType | edgeTypeOR (edge e, edgeType et) |
| void | setPrimaryType (edge e, edgeType et) |
| void | setSecondaryType (edge e, edgeType et) |
| edgeType | edgeTypePrimaryAND (edge e, edgeType et) |
| edgeType | edgeTypePrimaryOR (edge e, edgeType et) |
| void | setUserType (edge e, edgeType et) |
| bool | isUserType (edge e, edgeType et) |
| void | setExpansionEdge (edge e, int expType) |
| bool | isExpansionEdge (edge e) const |
| int | expansionType (edge e) const |
| bool | isDegreeExpansionEdge (edge e) const |
Access to attributes in original graph | |
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). | |
Structural alterations | |
| void | expand (bool lowDegreeExpand=false) |
| void | expandLowDegreeVertices (OrthoRep &OR) |
| void | collapseVertices (const OrthoRep &OR, Layout &drawing) |
| void | removeCrossing (node v) |
| void | insertBoundary (node center, adjEntry &adjExternal) |
Extension of methods defined by GraphCopys | |
| virtual edge | split (edge e) |
| Splits edge e. | |
| node | expandedNode (node v) const |
| void | setExpandedNode (node v, node w) |
Creation of new nodes and edges | |
| 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. | |
Crossings | |
| bool | embed () |
| void | removePseudoCrossings () |
| 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) |
| Re-inserts edge eOrig by "crossing" the edges in crossedEdges in embedding E. | |
| void | removeEdgePathEmbedded (CombinatorialEmbedding &E, edge eOrig, FaceSetPure &newFaces) |
| edge | insertCrossing (edge &crossingEdge, const edge crossedEdge, bool topDown) |
| Inserts crossings between already existing edges (used in TopologyModule). | |
Degree-1 nodes | |
These methods realize a mechanism for temporarily removing degree-1 nodes. | |
| void | removeDeg1Nodes (Stack< Deg1RestoreInfo > &S, const NodeArray< bool > &mark) |
| Removes all marked degree-1 nodes from the graph copy and stores restore information in S. | |
| void | restoreDeg1Nodes (Stack< Deg1RestoreInfo > &S, List< node > °1s) |
| Restores degree-1 nodes previously removed with removeDeg1Nodes(). | |
Protected Member Functions | |
| void | setCopyType (edge eCopy, edge eOrig) |
| edgeType | generalizationPattern () |
| edgeType | associationPattern () |
| edgeType | expansionPattern () |
| edgeType | assClassPattern () |
| edgeType | brotherPattern () |
| edgeType | halfBrotherPattern () |
| edgeType | cliquePattern () |
| void | removeUnnecessaryCrossing (adjEntry adjA1, adjEntry adjA2, adjEntry adjB1, adjEntry adjB2) |
Protected Attributes | |
| int | m_currentCC |
| The index of the current component. | |
| int | m_numCC |
| The number of components in the original graph. | |
| Array< List< node > > | m_nodesInCC |
| The list of original nodes in each component. | |
| const GraphAttributes * | m_pGraphAttributes |
| Pointer to graph attributes of original graph. | |
| NodeArray< NodeType > | m_vType |
| Simple node types. | |
| NodeArray< nodeType > | m_nodeTypes |
| Node types for extended semantic information. | |
| NodeArray< node > | m_expandedNode |
| For all expansion nodes, save expanded node. | |
| NodeArray< adjEntry > | m_expandAdj |
| NodeArray< adjEntry > | m_boundaryAdj |
| EdgeArray< int > | m_expansionEdge |
| EdgeArray< EdgeType > | m_eType |
| EdgeArray< edgeType > | m_edgeTypes |
| EdgeArray< edgeType > | m_oriEdgeTypes |
| EdgeArray< edge > | m_eAuxCopy |
Classes | |
| struct | Deg1RestoreInfo |
| Information for restoring degree-1 nodes. More... | |
Maintains types of edges (generalization, association) and nodes, and the connected components of the graph.
Definition at line 81 of file PlanRep.h.
| ogdf::PlanRep::PlanRep | ( | const Graph & | G | ) |
| ogdf::PlanRep::PlanRep | ( | const GraphAttributes & | AG | ) |
Creates a planarized representation of graph AG.
| int ogdf::PlanRep::numberOfCCs | ( | ) | const [inline] |
| int ogdf::PlanRep::currentCC | ( | ) | const [inline] |
| void ogdf::PlanRep::initCC | ( | int | i | ) |
Initializes the planarized representation for connected component i.
This initialization is always required. After performing this initialization, the planarized representation represents a copy of the i-th connected component of the original graph, where connected components are numbered 0,1,2,...
Reimplemented in ogdf::ClusterPlanRep, and ogdf::PlanRepUML.
| Graph::NodeType ogdf::PlanRep::typeOf | ( | node | v | ) | const [inline] |
| Graph::NodeType& ogdf::PlanRep::typeOf | ( | node | v | ) | [inline] |
| bool ogdf::PlanRep::isVertex | ( | node | v | ) | [inline] |
Returns true if the node represents a "real" object in the original graph.
| void ogdf::PlanRep::setCrossingType | ( | node | v | ) | [inline] |
| bool ogdf::PlanRep::isCrossingType | ( | node | v | ) | [inline] |
| bool ogdf::PlanRep::isGeneralization | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setGeneralization | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isDependency | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setDependency | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setAssociation | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setExpansion | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isExpansion | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isBoundary | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setAssClass | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isAssClass | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setBrother | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setHalfBrother | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isBrother | ( | edge | e | ) | [inline] |
| bool ogdf::PlanRep::isHalfBrother | ( | edge | e | ) | [inline] |
| void ogdf::PlanRep::setExpansionEdge | ( | edge | e, | |
| int | expType | |||
| ) | [inline] |
| bool ogdf::PlanRep::isExpansionEdge | ( | edge | e | ) | const [inline] |
| int ogdf::PlanRep::expansionType | ( | edge | e | ) | const [inline] |
| bool ogdf::PlanRep::isDegreeExpansionEdge | ( | edge | e | ) | const [inline] |
| const NodeArray<double>& ogdf::PlanRep::widthOrig | ( | ) | const [inline] |
| double ogdf::PlanRep::widthOrig | ( | node | v | ) | const [inline] |
| const NodeArray<double>& ogdf::PlanRep::heightOrig | ( | ) | const [inline] |
| double ogdf::PlanRep::heightOrig | ( | node | v | ) | const [inline] |
| const GraphAttributes& ogdf::PlanRep::getGraphAttributes | ( | ) | const [inline] |
| void ogdf::PlanRep::expand | ( | bool | lowDegreeExpand = false |
) |
Reimplemented in ogdf::ClusterPlanRep, and ogdf::PlanRepUML.
| void ogdf::PlanRep::expandLowDegreeVertices | ( | OrthoRep & | OR | ) |
Reimplemented in ogdf::ClusterPlanRep.
Reimplemented in ogdf::PlanRepUML.
| void ogdf::PlanRep::removeCrossing | ( | node | v | ) |
Splits edge e.
Reimplemented from ogdf::GraphCopy.
Reimplemented in ogdf::ClusterPlanRep, ogdf::PlanRepInc, and ogdf::PlanRepUML.
| node ogdf::PlanRep::newCopy | ( | node | vOrig, | |
| Graph::NodeType | vType | |||
| ) |
Creates a new node with node type vType in the planarized representation.
| vOrig | becomes the original node of the new node. | |
| vType | becomes the type of the new node. |
Creates a new edge in the planarized representation.
| v | is the source node of the new edge. | |
| adjAfter | is the adjacency entry at the target node, after which the new edge is inserted. | |
| eOrig | becomes the original edge of the new edge. |
| edge ogdf::PlanRep::newCopy | ( | node | v, | |
| adjEntry | adjAfter, | |||
| edge | eOrig, | |||
| CombinatorialEmbedding & | E | |||
| ) |
Creates a new edge in the planarized representation while updating the embedding E.
| v | is the source node of the new edge. | |
| adjAfter | is the adjacency entry at the target node, after which the new edge is inserted. | |
| eOrig | becomes the original edge of the new edge. | |
| E | is an embedding of the planarized representation. |
| bool ogdf::PlanRep::embed | ( | ) |
| void ogdf::PlanRep::removePseudoCrossings | ( | ) |
Re-inserts edge eOrig by "crossing" the edges in crossedEdges.
Let v and w be the copies of the source and target nodes of eOrig. Each edge in crossedEdges is split creating a sequence
of new nodes, and additional edges are inserted creating a path
.
| eOrig | is an edge in the original graph and becomes the original edge of all edges in the path |