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
41#include <ogdf/basic/Graph.h>
43#include <ogdf/basic/SList.h>
44#include <ogdf/basic/basic.h>
45
46namespace ogdf {
47class PlanRepInc;
48template<class E>
49class List;
50
52public:
53 //creates inserter on PG
56
57 //insert copy in m_planRep for original node v
59
60 //insert copy without respecting embedding
62
63protected:
64 //insertAfterAdj will be filled with adjEntries for the
65 //(new) edges around the copy of v to be inserted after.
66 //sorted in the order of the edge around v
68
69 //constructs a dual graph on the copy PlanRep,
70 //vCopy is the node to be inserted
71 void constructDual(const Graph& G, const CombinatorialEmbedding& E, bool forbidCrossings = true);
72
73 void insertFaceEdges(node v, node vCopy, face f, CombinatorialEmbedding& E, adjEntry& adExternal);
76 SList<adjEntry>& crossed);
77 void insertEdge(CombinatorialEmbedding& E, edge eOrig, const SList<adjEntry>& crossed,
78 bool forbidCrossingGens);
79
80private:
83 adjEntry adExternal);
84
85 //dual graph for the edge insertion
96};
97
98}
Declaration of CombinatorialEmbedding and face.
Includes declaration of graph class.
Declaration of class IncNodeInserter.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
Class for adjacency list elements.
Definition Graph_d.h:143
Combinatorial embeddings of planar graphs with modification functionality.
Class for the representation of edges.
Definition Graph_d.h:364
RegisteredArray for labeling the faces of a CombinatorialEmbedding.
Faces in a combinatorial embedding.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
NodeType
The type of nodes.
Definition Graph_d.h:909
EdgeType
The type of edges (only used in derived classes).
Definition Graph_d.h:906
Class for the representation of nodes.
Definition Graph_d.h:241
This class is only an adaption of PlanRep for the special incremental drawing case.
Definition PlanRepInc.h:61
Singly linked lists (maintaining the length of the list).
Definition SList.h:845
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)
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition Graph_d.h:717
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition Graph_d.h:659
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.