Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
CommonCompactionConstraintGraphBase.h
Go to the documentation of this file.
1
32#pragma once
33
38
39namespace ogdf {
40
50
53protected:
55 const PlanRep* m_pPR;
56
60
63
65
70
73
75
78
79 virtual string getLengthString(edge e) const = 0;
80
83 int costAssoc);
84
85public:
88 const Graph& getGraph() const { return (const Graph&)*this; }
89
90 Graph& getGraph() { return (Graph&)*this; }
91
94
96 const OrthoRep& getOrthoRep() const { return *m_pOR; }
97
98 const PlanRep& getPlanRep() const { return *m_pPR; }
99
102 const SListPure<node>& nodesIn(node v) const { return m_path[v]; }
103
106 node pathNodeOf(node v) const { return m_pathNode[v]; }
107
110 int cost(edge e) const { return m_cost[e]; }
111
113 node extraRep(node v) const { return m_extraRep[v]; }
114
116 bool onBorder(edge e) const { return m_border[e] > 0; }
117
119 bool fixOnBorder(edge e) const { return m_border[e] == 2; }
120
122
124 void embed();
125
127 edge basicArc(edge e) const { return m_edgeToBasicArc[e]; }
128
131
135
136#ifdef OGDF_DEBUG
137
145 void writeGML(const char* fileName) const;
146 void writeGML(std::ostream& os) const;
147 void writeGML(const char* fileName, const NodeArray<bool>& one) const;
148 void writeGML(std::ostream& os, const NodeArray<bool>& one) const;
150
151#endif
152
158 ConstraintEdgeType typeOf(edge e) const { return m_type[e]; }
159
161 bool extraNode(node v) const { return m_extraNode[v]; }
162};
163
164}
Declaration of orthogonal representation of planar graphs.
Declaration of a base class for planar representations of graphs and cluster graphs.
Base class for ogdf::CompactionConstraintGraphBase.
CommonCompactionConstraintGraphBase(const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, int costAssoc)
Build constraint graph with basic arcs.
ConstraintEdgeType typeOf(edge e) const
Returns type of edge e.
bool fixOnBorder(edge e) const
Returns true if edge is subject to length fixation if length < sep.
const Graph & getGraph() const
Returns underlying graph.
virtual string getLengthString(edge e) const =0
NodeArray< edge > m_originalEdge
save edge for the basic arcs
NodeArray< node > m_pathNode
segment containing a node in PG
EdgeArray< int > m_border
only used for cage precompaction in flowcompaction computecoords
node pathNodeOf(node v) const
Returns the segment (path node in constraint graph) containing v.
void computeTopologicalSegmentNum(NodeArray< int > &topNum)
Computes topological numbering on the segments of the constraint graph.
void embed()
Embeds constraint graph such that all sources and sinks lie in a common face.
NodeArray< SListPure< node > > m_path
list of nodes contained in a segment
NodeArray< bool > m_extraNode
Node does not represent drawing node as we dont have positions we save a drawing representant and an ...
EdgeArray< edge > m_edgeToBasicArc
basic arc representing an edge in PG
EdgeArray< ConstraintEdgeType > m_type
constraint type for each edge
node extraRep(node v) const
Returns extraNode existing anchor representant.
const OrthoRep & getOrthoRep() const
Returns underlying OrthoRep.
edge basicArc(edge e) const
Returns constraint arc representing input edge e in constraint graph.
NodeArray< node > m_extraRep
existing representant of extranodes position anchor
bool onBorder(edge e) const
Returns true if edge lies on cage border.
const SListPure< node > & nodesIn(node v) const
Returns list of nodes contained in segment v.
void removeRedundantVisibArcs(SListPure< Tuple2< node, node > > &visibArcs)
Removes "arcs" from visibArcs which we already have in the constraint graph (as basic arcs)
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Class for the representation of edges.
Definition Graph_d.h:300
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
Orthogonal representation of an embedded graph.
Definition OrthoRep.h:219
Planarized representations (of a connected component) of a graph.
Definition PlanRep.h:57
Singly linked lists (maintaining the length of the list).
Definition SList.h:833
Singly linked lists.
Definition SList.h:179
Tuples of two elements (2-tuples).
Definition tuples.h:46
Declaration of extended graph algorithms.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
ConstraintEdgeType
Types of edges in the constraint graph.
@ ReducibleArc
can be compacted to zero length
@ FixToZeroArc
can be compacted to zero length, can be fixed
@ MedianArc
inserted to replace some reducible in fixzerolength
OrthoDir
Definition OrthoRep.h:50
Declaration of simple graph algorithms.