|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
53 class CombinatorialEmbedding;
73 Deg1RestoreInfo() : m_eOriginal(nullptr), m_deg1Original(nullptr), m_adjRef(nullptr) { }
76 : m_eOriginal(eOrig), m_deg1Original(deg1Orig), m_adjRef(adjRef) { }
117 node v(
int i)
const {
return m_ccInfo.v(i); }
120 edge e(
int i)
const {
return m_ccInfo.e(i); }
123 int startNode()
const {
return m_ccInfo.startNode(m_currentCC); }
126 int startNode(
int cc)
const {
return m_ccInfo.startNode(cc); }
129 int stopNode()
const {
return m_ccInfo.stopNode(m_currentCC); }
132 int stopNode(
int cc)
const {
return m_ccInfo.stopNode(cc); }
135 int startEdge()
const {
return m_ccInfo.startEdge(m_currentCC); }
138 int stopEdge()
const {
return m_ccInfo.stopEdge(m_currentCC); }
187 return (edgeTypeOf(e) & cliquePattern()) == cliquePattern();
329 m_eType[e] = EdgeType::generalization;
345 m_eType[e] = EdgeType::dependency;
353 m_eType[e] = EdgeType::association;
362 m_edgeTypes[e] |= expansionPattern();
365 m_expansionEdge[e] = 1;
370 return (m_edgeTypes[e] & expansionPattern()) == expansionPattern();
385 return (m_edgeTypes[e] & assClassPattern()) == assClassPattern();
414 m_edgeTypes[e] &= et;
415 return m_edgeTypes[e];
420 m_edgeTypes[e] |= et;
421 return m_edgeTypes[e];
426 m_edgeTypes[e] &= 0xfffffff0;
432 setPrimaryType(e,
static_cast<edgeType>(et));
437 m_edgeTypes[e] &= 0xffffff0f;
444 return m_edgeTypes[e];
449 m_edgeTypes[e] |= et;
450 return m_edgeTypes[e];
488 return (m_eType[e] == Graph::expand);
490 return m_expansionEdge[e] == 2;
506 return m_pGraphAttributes->width();
512 return m_pGraphAttributes->width(v);
518 return m_pGraphAttributes->height();
524 return m_pGraphAttributes->height(v);
530 return m_pGraphAttributes->type(e);
536 return *m_pGraphAttributes;
546 virtual void expand(
bool lowDegreeExpand =
false);
548 void expandLowDegreeVertices(
OrthoRep& OR);
553 void removeCrossing(
node v);
557 void insertBoundary(
node center,
adjEntry& adjExternal);
648 edge insertCrossing(
edge& crossingEdge,
edge crossedEdge,
bool topDown);
690 void setCopyType(
edge eCopy,
edge eOrig);
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
bool isVertex(node v) const
Returns true if the node represents a "real" object in the original graph.
edgeType edgeTypeOf(edge e) const
Returns the new type field of e.
The namespace for all OGDF objects.
Stores additional attributes of a graph (like layout information).
Declaration of class GraphAttributes which extends a Graph by additional attributes.
Declaration and implementation of ArrayBuffer class.
Includes declaration of graph class.
edgeType halfBrotherPattern() const
void setSecondaryType(edge e, edgeType et)
Sets secondary edge type of edge e to primary edge type in et.
EdgeArray< edgeType > m_oriEdgeTypes
edgeType assClassPattern() const
Info structure for maintaining connected components.
bool isCliqueBoundary(edge e) const
EdgeArray< EdgeType > m_eType
Planarized representations (of a connected component) of a graph.
void setBrother(edge e)
Classifies edge e as connection between hierarchy neighbours (fourth level type).
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
void setExpandedNode(node v, node w)
NodeArray< adjEntry > m_boundaryAdj
edgeType edgeTypeAND(edge e, edgeType et)
Sets type of edge e to current type (bitwise) AND et.
edgeType expansionPattern() const
int stopNode(int cc) const
Returns the index of (one past) the last node in connected component cc.
int stopEdge() const
Returns the index of (one past) the last edge in this connected component.
EdgeType & typeOf(edge e)
Returns a reference to the type of edge e.
NodeArray< NodeType > m_vType
Simple node types.
bool isHalfBrother(edge e) const
Returns true if edge e is classified as half-brother.
std::pair< node, node > split(Graph &G, sync_plan::PipeBij &bij, const EdgeArray< edge > *new_edges=nullptr, const EdgeArray< bool > *reverse_edges=nullptr, node src=nullptr, node tgt=nullptr)
edgeType brotherPattern() const
Singly linked lists (maintaining the length of the list).
double widthOrig(node v) const
Returns the width of original node v.
adjEntry expandAdj(node v) const
Returns the adjacency entry of a node of an expanded face.
Copies of graphs supporting edge splitting.
void setType(edge e, EdgeType et)
Set both type values of e at once.
Deg1RestoreInfo(edge eOrig, node deg1Orig, adjEntry adjRef)
bool isExpansionEdge(edge e) const
Returns if e is an expansion edge.
NodeArray< adjEntry > m_expandAdj
edgeType edgeTypePrimaryOR(edge e, edgeType et)
Sets primary type of e to bitwise OR of et's primary value and old value.
const CCsInfo & ccInfo() const
Returns the connected components info structure.
void setPrimaryType(edge e, edgeType et)
Sets primary edge type of edge e to primary edge type in et (deletes old primary value).
bool isExpansion(edge e) const
Returns true iff edge e is classified as expansion edge.
adjEntry m_adjRef
the reference adjacency entry for restoring the edge
node v(int i) const
Returns node i in the list of all original nodes.
int numberOfNodesInCC(int cc) const
Returns the number of nodes in connected component cc.
Class for adjacency list elements.
const GraphAttributes * m_pGraphAttributes
Pointer to graph attributes of original graph.
edgeType cliquePattern() const
bool isDegreeExpansionEdge(edge e) const
Returns if e is a degree expansion edge.
void setAssClass(edge e)
Classifies edge e as connection at an association class (tertiary type).
EdgeArray< edgeType > m_edgeTypes
Stores a layout of a graph (coordinates of nodes, bend points of edges).
int stopNode() const
Returns the index of (one past) the last node in this connected component.
void setAssociation(edge e)
Classifies edge e as association (primary type).
bool isBrother(edge e) const
Returns true if edge e is classified as brother.
Orthogonal representation of an embedded graph.
Declaration of singly linked lists and iterators.
int numberOfCCs() const
Returns the number of connected components in the original graph.
int startEdge() const
Returns the index of the first edge in this connected component.
adjEntry boundaryAdj(node v) const
Returns the adjacency entry of the first edge of the inserted boundary at a center node (original) of...
Graph::NodeType typeOf(node v) const
Returns the type of node v.
adjEntry & expandAdj(node v)
int m_currentCC
The index of the current component.
EdgeType typeOf(edge e) const
Returns the type of edge e.
void setEdgeTypeOf(edge e, edgeType et)
Sets the new type field of edge e to et.
adjEntry & boundaryAdj(node v)
Returns a reference to the adjacency entry of the first edge of the inserted boundary at a center nod...
Declaration of graph copy classes.
Doubly linked lists (maintaining the length of the list).
RegisteredArray for nodes, edges and adjEntries of a graph.
edge e(int i) const
Returns edge i in the list of all original edges.
node expandedNode(node v) const
Data type for general directed graphs (adjacency list representation).
void removeEdgePathEmbedded(CombinatorialEmbedding &E, edge eOrig, FaceSet< false > &newFaces)
Removes the complete edge path for edge eOrig while preserving the embedding.
bool isDependency(edge e) const
Returns true iff edge e is classified as dependency.
void removeEdgePathEmbedded(CombinatorialEmbedding &E, edge eOrig, FaceSet< false > &newFaces)
Removes the complete edge path for edge eOrig while preserving the embedding.
edgeType & oriEdgeTypes(edge e)
Returns a reference to the type of original edge e.
edge m_eOriginal
the original edge leading to the deg-1 node
edgeType associationPattern() const
edgeType edgeTypeOR(edge e, edgeType et)
Sets type of edge e to current type (bitwise) OR et.
NodeType
The type of nodes.
double heightOrig(node v) const
Returns the height of original node v.
void setCrossingType(node v)
Classifies node v as a crossing.
const NodeArray< double > & heightOrig() const
Gives access to the node array of the heights of original nodes.
Declaration of node types and patterns for planar representations.
bool isBoundary(edge e) const
Returns true iff edge e is a clique boundary.
nodeType nodeTypeOf(node v)
Returns the extended node type of v.
void setGeneralization(edge e)
Classifies edge e as generalization (primary type).
bool isCrossingType(node v) const
Returns true iff node v is classified as a crossing.
edgeType edgeTypePrimaryAND(edge e, edgeType et)
Sets primary type of e to bitwise AND of et's primary value and old value.
int numberOfNodesInCC() const
Returns the number of nodes in the current connected component.
void setCliqueBoundary(edge e)
int startNode(int cc) const
Returns the index of the first node in connected component cc.
Basic declarations, included by all source files.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
const GraphAttributes & getGraphAttributes() const
Returns the graph attributes of the original graph (the pointer may be 0).
void setPrimaryType(edge e, UMLEdgeTypeConstants et)
Sets primary edge type of edge e to primary edge type in et (deletes old primary value).
int currentCC() const
Returns the index of the current connected component (-1 if not yet initialized).
Combinatorial embeddings of planar graphs with modification functionality.
Class for the representation of edges.
void setExpansionEdge(edge e, int expType)
Sets the expansion edge type of e to expType.
int expansionType(edge e) const
Returns the expansion edge type of e.
void setExpansion(edge e)
Classifies edge e as expansion edge (secondary type).
Representation of a graph's grid layout.
bool isGeneralization(edge e) const
Returns true iff edge e is classified as generalization.
edgeType & edgeTypes(edge e)
Returns a reference to the new type field of e.
void setDependency(edge e)
Classifies edge e as dependency (primary type).
const NodeArray< double > & widthOrig() const
Gives access to the node array of the widths of original nodes.
Information for restoring degree-1 nodes.
NodeArray< node > m_expandedNode
For all expansion nodes, save expanded node.
Class for the representation of nodes.
Graph::NodeType & typeOf(node v)
Returns a reference to the type of node v.
void setHalfBrother(edge e)
Classifies edge e as connection between ... (fourth level type).
node m_deg1Original
the original deg-1 node
void setUserType(edge e, edgeType et)
Sets user defined type locally.
EdgeType typeOrig(edge e) const
Returns the type of original edge e.
bool isAssClass(edge e) const
Returns true iff edge e is classified as connection at an association class.
bool isUserType(edge e, edgeType et) const
Returns user defined type.
Edge types and patterns for planar representations.
int startNode() const
Returns the index of the first node in this connected component.
edgeType generalizationPattern() const
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
NodeArray< nodeType > m_nodeTypes
Node types for extended semantic information.
EdgeArray< int > m_expansionEdge
EdgeArray< edge > m_eAuxCopy