Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ClusterOrthoLayout.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <ogdf/basic/Graph.h>
36#include <ogdf/basic/basic.h>
38
39namespace ogdf {
40class ClusterPlanRep;
41class Layout;
42enum class OrthoDir;
43template<class E>
44class List;
45
47
51public:
54
55
62 void call(ClusterPlanRep& PG, adjEntry adjExternal, Layout& drawing);
63
65 virtual void call(ClusterPlanRep& PG, adjEntry adjExternal, Layout& drawing,
66 List<edge>& origEdges, Graph& originalGraph) override;
67
68 //
69 // options
70
72 virtual double separation() const override { return m_separation; }
73
75 virtual void separation(double sep) override { m_separation = sep; }
76
78 //distance between the glue point of an edge and a corner of the vertex boundary
79 double cOverhang() const { return m_cOverhang; }
80
82 void cOverhang(double c) { m_cOverhang = c; }
83
85 double margin() const { return m_margin; }
86
88 void margin(double m) { m_margin = m; }
89
91 OrthoDir preferedDir() const { return m_preferedDir; }
92
94 void preferedDir(OrthoDir dir) { m_preferedDir = dir; }
95
97 int costAssoc() const { return m_costAssoc; }
98
100 void costAssoc(int c) { m_costAssoc = c; }
101
103 int costGen() const { return m_costGen; }
104
106 void costGen(int c) { m_costGen = c; }
107
109 void optionProfile(int i) { m_optionProfile = i; }
110
112 void align(bool b) { m_align = b; }
113
115 void scaling(bool b) { m_useScalingCompaction = b; }
116
118 //Necessary to allow setting over base class pointer
119 //bit 0 = alignment
120 //bit 1 = scaling
121 //bit 2 = progressive/traditional
122 //=> 0 is standard
123 virtual void setOptions(int optionField) override {
124 m_align = (optionField & 1) != 0;
125 m_useScalingCompaction = (optionField & 2) != 0;
126 m_orthoStyle = (optionField & 4) != 0;
127 // m_orthoStyle = 0 is traditional
128 }
129
130
131private:
132 // compute bounding box and move final drawing such that it is 0 aligned
133 // respecting margins
134 void computeBoundingBox(const ClusterPlanRep& PG, Layout& drawing);
135
136
137 // options
139 double m_cOverhang;
140 double m_margin;
145 //align merger sons on same level
146 bool m_align;
147 //settings for scaling compaction
151};
152
153}
Includes declaration of graph class.
Declaration of interface for planar layout algorithms for UML diagrams (used in planarization approac...
Basic declarations, included by all source files.
Class for adjacency list elements.
Definition Graph_d.h:143
Represents a planar orthogonal drawing algorithm for c-planar, c-connected clustered graphs.
virtual void setOptions(int optionField) override
Sets generic options by setting field bits.
double m_separation
Minimum distance between edges and vertices.
void align(bool b)
Sets alignment option.
void margin(double m)
Sets the distance from the tight bounding box to the boundary of the drawing.
void preferedDir(OrthoDir dir)
Sets the preferred direction of generalizations.
int m_scalingSteps
Number of scaling steps during compaction.
void cOverhang(double c)
Sets cOverhang value.
void costGen(int c)
Sets cost of generalizations.
int costGen() const
Returns cost of generalizations.
void computeBoundingBox(const ClusterPlanRep &PG, Layout &drawing)
ClusterOrthoLayout()
Initializes an instance of class ClusterOrthoLayout.
virtual void call(ClusterPlanRep &PG, adjEntry adjExternal, Layout &drawing, List< edge > &origEdges, Graph &originalGraph) override
Call method for non c-planar graphs.
bool m_align
Horizontal alignment option.
double m_margin
Distance between bounding box and drawing boundary.
int m_costAssoc
Compaction cost of association type edges.
int costAssoc() const
Returns cost of associations which is used in the compactions step.
OrthoDir m_preferedDir
Preferred direction of generalizations (obsolete).
bool m_useScalingCompaction
Switches scaling improvement during compaction.
void call(ClusterPlanRep &PG, adjEntry adjExternal, Layout &drawing)
Calls planar UML layout algorithm.
int m_costGen
Compaction cost of generalizations type edges.
double cOverhang() const
Returns cOverhang, where cOverhang * separation defines the minimum.
double margin() const
Returns the distance from the tight bounding box to the boundary of the drawing.
void scaling(bool b)
Sets scaling option for compaction step.
void costAssoc(int c)
Sets cost of associations which is used in the compactions step.
int m_orthoStyle
Type of style (traditional/progressive) used for shape step.
virtual double separation() const override
Returns the minimum distance between edges and vertices.
OrthoDir preferedDir() const
Returns the preferred direction of generalizations.
virtual void separation(double sep) override
Sets the minimum distance between edges and vertices.
double m_cOverhang
Factor for minimum distance between vertex corner an adjacent edges.
void optionProfile(int i)
Sets the option profile, thereby fixing a set of drawing options.
Planarized representations for clustered graphs.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Interface for planar cluster layout algorithms.
Stores a layout of a graph (coordinates of nodes, bend points of edges).
Definition Layout.h:49
Doubly linked lists (maintaining the length of the list).
Definition List.h:1451
#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.
OrthoDir
Definition OrthoRep.h:56