Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

SimpleIncNodeInserter.h
Go to the documentation of this file.
1 
38 #pragma once
39 
40 #include <ogdf/basic/FaceArray.h>
45 #include <ogdf/uml/UMLGraph.h>
46 
47 namespace ogdf {
48 
50 public:
51  //creates inserter on PG
52  explicit SimpleIncNodeInserter(PlanRepInc& PG);
53  virtual ~SimpleIncNodeInserter();
54 
55  //insert copy in m_planRep for original node v
56  void insertCopyNode(node v, CombinatorialEmbedding& E, Graph::NodeType vTyp) override;
57 
58  //insert copy without respecting embedding
59  void insertCopyNode(node v, Graph::NodeType vTyp);
60 
61 protected:
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
65  face getInsertionFace(node v, CombinatorialEmbedding& E) override;
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 
71  void insertFaceEdges(node v, node vCopy, face f, CombinatorialEmbedding& E, adjEntry& adExternal);
72  void insertCrossingEdges(node v, node vCopy, CombinatorialEmbedding& E, adjEntry& adExternal);
73  void findShortestPath(const CombinatorialEmbedding& E, node s, node t, Graph::EdgeType eType,
74  SList<adjEntry>& crossed);
75  void insertEdge(CombinatorialEmbedding& E, edge eOrig, const SList<adjEntry>& crossed,
76  bool forbidCrossingGens);
77 
78 private:
80  inline void updateComponentNumber(node vCopy, node wCopy, CombinatorialEmbedding& E,
81  adjEntry adExternal);
82 
83  //dual graph for the edge insertion
94 };
95 
96 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
GraphAttributes.h
Declaration of class GraphAttributes which extends a Graph by additional attributes.
ogdf::SimpleIncNodeInserter::m_vAdjNodes
NodeArray< bool > m_vAdjNodes
node is adjacent to insertion node
Definition: SimpleIncNodeInserter.h:87
ogdf::SimpleIncNodeInserter::m_nodeOf
FaceArray< node > m_nodeOf
node in dual corresponding to to face in primal
Definition: SimpleIncNodeInserter.h:85
ogdf::Graph::EdgeType
EdgeType
The type of edges (only used in derived classes).
Definition: Graph_d.h:901
ogdf::SimpleIncNodeInserter::m_vT
node m_vT
sink in the dual graph for edge insertion
Definition: SimpleIncNodeInserter.h:93
ogdf::SList
Singly linked lists (maintaining the length of the list).
Definition: SList.h:833
ogdf::SimpleIncNodeInserter::m_primalAdj
EdgeArray< adjEntry > m_primalAdj
copy adj for edges in dual graph
Definition: SimpleIncNodeInserter.h:89
UMLGraph.h
Declaration of class UMLGraph.
FaceArray.h
declaration and implementation of FaceArray class
ogdf::SimpleIncNodeInserter::m_dual
Graph m_dual
Definition: SimpleIncNodeInserter.h:84
ogdf::SimpleIncNodeInserter::m_vS
node m_vS
source in the dual graph for edge insertion
Definition: SimpleIncNodeInserter.h:92
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::IncNodeInserter
Definition: IncNodeInserter.h:46
ogdf::SimpleIncNodeInserter::m_primalIsGen
EdgeArray< bool > m_primalIsGen
true iff corresponding primal edge is a generalization
Definition: SimpleIncNodeInserter.h:90
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::SimpleIncNodeInserter::m_insertFaceNode
NodeArray< bool > m_insertFaceNode
node lies at border of insertionface
Definition: SimpleIncNodeInserter.h:86
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::FaceArrayBase
RegisteredArray for labeling the faces of a CombinatorialEmbedding.
Definition: CombinatorialEmbedding.h:172
ogdf::Graph::NodeType
NodeType
The type of nodes.
Definition: Graph_d.h:904
ogdf::PlanRepInc
This class is only an adaption of PlanRep for the special incremental drawing case.
Definition: PlanRepInc.h:54
ogdf::SimpleIncNodeInserter
Definition: SimpleIncNodeInserter.h:49
GraphObserver.h
Abstract base class for structures on graphs, that need to be informed about graph changes (e....
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
PlanRepInc.h
Declaration of class PlanRepInc.
ogdf::CombinatorialEmbedding
Combinatorial embeddings of planar graphs with modification functionality.
Definition: CombinatorialEmbedding.h:397
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::SimpleIncNodeInserter::m_forbidCrossings
bool m_forbidCrossings
should generalization crossings be avoided
Definition: SimpleIncNodeInserter.h:91
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::SimpleIncNodeInserter::m_incidentEdges
NodeArray< List< edge > * > m_incidentEdges
original edges(insertionnode) incident to original(node)
Definition: SimpleIncNodeInserter.h:88
IncNodeInserter.h
Declaration of class IncNodeInserter.
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
ogdf::FaceElement
Faces in a combinatorial embedding.
Definition: CombinatorialEmbedding.h:109