Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
SimpleIncNodeInserter.h
Go to the documentation of this file.
1
38#pragma once
39
45#include <ogdf/uml/UMLGraph.h>
46
47namespace ogdf {
48
50public:
51 //creates inserter on PG
54
55 //insert copy in m_planRep for original node v
57
58 //insert copy without respecting embedding
60
61protected:
62 //insertAfterAdj will be filled with adjEntries for the
63 //(new) edges around the copy of v to be inserted after.
64 //sorted in the order of the edge around v
66
67 //constructs a dual graph on the copy PlanRep,
68 //vCopy is the node to be inserted
69 void constructDual(const Graph& G, const CombinatorialEmbedding& E, bool forbidCrossings = true);
70
74 SList<adjEntry>& crossed);
77
78private:
82
83 //dual graph for the edge insertion
94};
95
96}
declaration and implementation of FaceArray class
Declaration of class GraphAttributes which extends a Graph by additional attributes.
Abstract base class for structures on graphs, that need to be informed about graph changes (e....
Declaration of class IncNodeInserter.
Declaration of class PlanRepInc.
Declaration of class UMLGraph.
Class for adjacency list elements.
Definition Graph_d.h:79
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Class for the representation of edges.
Definition Graph_d.h:300
Dynamic arrays indexed with faces of a combinatorial embedding.
Definition FaceArray.h:126
Faces in a combinatorial embedding.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
NodeType
The type of nodes.
Definition Graph_d.h:569
EdgeType
The type of edges (only used in derived classes).
Definition Graph_d.h:566
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
This class is only an adaption of PlanRep for the special incremental drawing case.
Definition PlanRepInc.h:54
Singly linked lists (maintaining the length of the list).
Definition SList.h:833
void insertCopyNode(node v, CombinatorialEmbedding &E, Graph::NodeType vTyp) override
Inserts copy in m_planRep for original node v.
void insertCopyNode(node v, Graph::NodeType vTyp)
FaceArray< node > m_nodeOf
node in dual corresponding to to face in primal
void insertEdge(CombinatorialEmbedding &E, edge eOrig, const SList< adjEntry > &crossed, bool forbidCrossingGens)
NodeArray< bool > m_vAdjNodes
node is adjacent to insertion node
face getInsertionFace(node v, CombinatorialEmbedding &E) override
Returns a face to insert a copy of v and a list of adjacency entries corresponding to the insertion a...
EdgeArray< bool > m_primalIsGen
true iff corresponding primal edge is a generalization
node m_vT
sink in the dual graph for edge insertion
SimpleIncNodeInserter(PlanRepInc &PG)
bool m_forbidCrossings
should generalization crossings be avoided
node m_vS
source in the dual graph for edge insertion
EdgeArray< adjEntry > m_primalAdj
copy adj for edges in dual graph
void insertCrossingEdges(node v, node vCopy, CombinatorialEmbedding &E, adjEntry &adExternal)
NodeArray< bool > m_insertFaceNode
node lies at border of insertionface
void findShortestPath(const CombinatorialEmbedding &E, node s, node t, Graph::EdgeType eType, SList< adjEntry > &crossed)
void constructDual(const Graph &G, const CombinatorialEmbedding &E, bool forbidCrossings=true)
void updateComponentNumber(node vCopy, node wCopy, CombinatorialEmbedding &E, adjEntry adExternal)
Set new number or delete treeConnnection edge.
void insertFaceEdges(node v, node vCopy, face f, CombinatorialEmbedding &E, adjEntry &adExternal)
NodeArray< List< edge > * > m_incidentEdges
original edges(insertionnode) incident to original(node)
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.