Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

CommonCompactionConstraintGraphBase.h
Go to the documentation of this file.
1 
32 #pragma once
33 
37 #include <ogdf/planarity/PlanRep.h>
38 
39 namespace ogdf {
40 
42 enum class ConstraintEdgeType {
43  BasicArc,
46  FixToZeroArc,
47  ReducibleArc,
48  MedianArc
49 };
50 
53 protected:
54  const OrthoRep* m_pOR;
55  const PlanRep* m_pPR;
56 
60 
63 
65 
70 
73 
75 
78 
79  virtual string getLengthString(edge e) const = 0;
80 
82  CommonCompactionConstraintGraphBase(const OrthoRep& OR, const PlanRep& PG, OrthoDir arcDir,
83  int costAssoc);
84 
85 public:
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 
144  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 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::CommonCompactionConstraintGraphBase::m_extraNode
NodeArray< bool > m_extraNode
Node does not represent drawing node as we dont have positions we save a drawing representant and an ...
Definition: CommonCompactionConstraintGraphBase.h:68
ogdf::CommonCompactionConstraintGraphBase::getOrthoRep
const OrthoRep & getOrthoRep() const
Returns underlying OrthoRep.
Definition: CommonCompactionConstraintGraphBase.h:96
ogdf::CommonCompactionConstraintGraphBase::m_oppArcDir
OrthoDir m_oppArcDir
Definition: CommonCompactionConstraintGraphBase.h:72
ogdf::CommonCompactionConstraintGraphBase::cost
int cost(edge e) const
Returns cost of edge e.
Definition: CommonCompactionConstraintGraphBase.h:110
ogdf::PlanRep
Planarized representations (of a connected component) of a graph.
Definition: PlanRep.h:57
ogdf::ConstraintEdgeType::BasicArc
@ BasicArc
ogdf::CommonCompactionConstraintGraphBase::basicArc
edge basicArc(edge e) const
Returns constraint arc representing input edge e in constraint graph.
Definition: CommonCompactionConstraintGraphBase.h:127
ogdf::CommonCompactionConstraintGraphBase::m_extraRep
NodeArray< node > m_extraRep
existing representant of extranodes position anchor
Definition: CommonCompactionConstraintGraphBase.h:69
ogdf::CommonCompactionConstraintGraphBase::m_path
NodeArray< SListPure< node > > m_path
list of nodes contained in a segment
Definition: CommonCompactionConstraintGraphBase.h:57
ogdf::CommonCompactionConstraintGraphBase::m_arcDir
OrthoDir m_arcDir
Definition: CommonCompactionConstraintGraphBase.h:71
ogdf::OrthoDir
OrthoDir
Definition: OrthoRep.h:50
ogdf::Tuple2
Tuples of two elements (2-tuples).
Definition: tuples.h:46
ogdf::CommonCompactionConstraintGraphBase::CommonCompactionConstraintGraphBase
CommonCompactionConstraintGraphBase(const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, int costAssoc)
Build constraint graph with basic arcs.
ogdf::CommonCompactionConstraintGraphBase::m_originalEdge
NodeArray< edge > m_originalEdge
save edge for the basic arcs
Definition: CommonCompactionConstraintGraphBase.h:74
extended_graph_alg.h
Declaration of extended graph algorithms.
ogdf::CommonCompactionConstraintGraphBase::removeRedundantVisibArcs
void removeRedundantVisibArcs(SListPure< Tuple2< node, node >> &visibArcs)
Removes "arcs" from visibArcs which we already have in the constraint graph (as basic arcs)
ogdf::SList
Singly linked lists (maintaining the length of the list).
Definition: SList.h:833
ogdf::CommonCompactionConstraintGraphBase::extraNode
bool extraNode(node v) const
Returns node status.
Definition: CommonCompactionConstraintGraphBase.h:161
PlanRep.h
Declaration of a base class for planar representations of graphs and cluster graphs.
ogdf::CommonCompactionConstraintGraphBase::m_border
EdgeArray< int > m_border
only used for cage precompaction in flowcompaction computecoords
Definition: CommonCompactionConstraintGraphBase.h:64
ogdf::CommonCompactionConstraintGraphBase::pathNodeOf
node pathNodeOf(node v) const
Returns the segment (path node in constraint graph) containing v.
Definition: CommonCompactionConstraintGraphBase.h:106
ogdf::CommonCompactionConstraintGraphBase::writeGML
void writeGML(const char *fileName) const
Writes GML output (for debugging)
ogdf::CommonCompactionConstraintGraphBase::m_edgeToBasicArc
EdgeArray< edge > m_edgeToBasicArc
basic arc representing an edge in PG
Definition: CommonCompactionConstraintGraphBase.h:59
ogdf::CommonCompactionConstraintGraphBase::m_sinks
SList< node > m_sinks
Definition: CommonCompactionConstraintGraphBase.h:77
ogdf::CommonCompactionConstraintGraphBase::getGraph
const Graph & getGraph() const
Returns underlying graph.
Definition: CommonCompactionConstraintGraphBase.h:88
OrthoRep.h
Declaration of orthogonal representation of planar graphs.
ogdf::CommonCompactionConstraintGraphBase::embed
void embed()
Embeds constraint graph such that all sources and sinks lie in a common face.
ogdf::OrthoRep
Orthogonal representation of an embedded graph.
Definition: OrthoRep.h:219
ogdf::CommonCompactionConstraintGraphBase::m_pOR
const OrthoRep * m_pOR
Definition: CommonCompactionConstraintGraphBase.h:54
ogdf::ConstraintEdgeType::MedianArc
@ MedianArc
inserted to replace some reducible in fixzerolength
ogdf::CommonCompactionConstraintGraphBase::extraRep
node extraRep(node v) const
Returns extraNode existing anchor representant.
Definition: CommonCompactionConstraintGraphBase.h:113
ogdf::SListPure
Singly linked lists.
Definition: SList.h:39
ogdf::CommonCompactionConstraintGraphBase::computeTopologicalSegmentNum
void computeTopologicalSegmentNum(NodeArray< int > &topNum)
Computes topological numbering on the segments of the constraint graph.
ogdf::CommonCompactionConstraintGraphBase::getPlanRep
const PlanRep & getPlanRep() const
Definition: CommonCompactionConstraintGraphBase.h:98
ogdf::ConstraintEdgeType::VisibilityArc
@ VisibilityArc
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::CommonCompactionConstraintGraphBase
Base class for ogdf::CompactionConstraintGraphBase.
Definition: CommonCompactionConstraintGraphBase.h:52
ogdf::ConstraintEdgeType::FixToZeroArc
@ FixToZeroArc
can be compacted to zero length, can be fixed
ogdf::CommonCompactionConstraintGraphBase::m_cost
EdgeArray< int > m_cost
cost of an edge
Definition: CommonCompactionConstraintGraphBase.h:61
ogdf::CommonCompactionConstraintGraphBase::onBorder
bool onBorder(edge e) const
Returns true if edge lies on cage border.
Definition: CommonCompactionConstraintGraphBase.h:116
ogdf::ConstraintEdgeType::ReducibleArc
@ ReducibleArc
can be compacted to zero length
ogdf::CommonCompactionConstraintGraphBase::m_pathNode
NodeArray< node > m_pathNode
segment containing a node in PG
Definition: CommonCompactionConstraintGraphBase.h:58
ogdf::CommonCompactionConstraintGraphBase::getLengthString
virtual string getLengthString(edge e) const =0
ogdf::ConstraintEdgeType
ConstraintEdgeType
Types of edges in the constraint graph.
Definition: CommonCompactionConstraintGraphBase.h:42
ogdf::CommonCompactionConstraintGraphBase::fixOnBorder
bool fixOnBorder(edge e) const
Returns true if edge is subject to length fixation if length < sep.
Definition: CommonCompactionConstraintGraphBase.h:119
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::CommonCompactionConstraintGraphBase::getGraph
Graph & getGraph()
Definition: CommonCompactionConstraintGraphBase.h:90
ogdf::CommonCompactionConstraintGraphBase::typeOf
ConstraintEdgeType typeOf(edge e) const
Returns type of edge e.
Definition: CommonCompactionConstraintGraphBase.h:158
ogdf::CommonCompactionConstraintGraphBase::nodesIn
const SListPure< node > & nodesIn(node v) const
Returns list of nodes contained in segment v.
Definition: CommonCompactionConstraintGraphBase.h:102
ogdf::CommonCompactionConstraintGraphBase::m_pPR
const PlanRep * m_pPR
Definition: CommonCompactionConstraintGraphBase.h:55
ogdf::ConstraintEdgeType::VertexSizeArc
@ VertexSizeArc
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
simple_graph_alg.h
Declaration of simple graph algorithms.
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
ogdf::CommonCompactionConstraintGraphBase::m_type
EdgeArray< ConstraintEdgeType > m_type
constraint type for each edge
Definition: CommonCompactionConstraintGraphBase.h:62
ogdf::CommonCompactionConstraintGraphBase::m_sources
SList< node > m_sources
Definition: CommonCompactionConstraintGraphBase.h:76