Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
HypergraphLayout.h
Go to the documentation of this file.
1
40#pragma once
41
51
52#include <memory>
53
54namespace ogdf {
55
57public:
59 enum class Profile { Normal = 0x000001, ElectricCircuit = 0x000002 };
60
61private:
63 double m_ratio;
64
67
70
72 // TODO: This might require some tweaks in Hypergraph class.
74
77
79 std::unique_ptr<LayoutPlanRepModule> m_planarLayoutModule;
80
82 std::unique_ptr<CrossingMinimizationModule> m_crossingMinimizationModule;
83
85 std::unique_ptr<EmbedderModule> m_embeddingModule;
86
87public:
88 // constructor
90
91 // destructor
92 virtual ~HypergraphLayoutES() { }
93
94 // Dynamic casting is currently not working as desired and hence we left
95 // the following call inherited from superclass empty.
96 virtual void call(HypergraphAttributes& HA) override;
97
98#if 0
99 void call(HypergraphAttributesES &HA);
100#endif
101
104
106 int crossings() const { return m_crossings; }
107
109 double ratio() const { return m_ratio; }
110
112 void setConstraintIO(bool pConstraintIO) { m_constraintIO = pConstraintIO; }
113
115 void setProfile(Profile pProfile) { m_profile = pProfile; }
116
133
143
151 m_embeddingModule.reset(pEmbeddingModule);
152 }
153
155
156private:
158
159#if 0
161#endif
162
165
168
170
172};
173
174}
Declaration of CrossingMinimization Module, an interface for crossing minimization algorithms.
A declaration of EdgeStandardRep class representing a graph representation of a hypergraph in the edg...
Defines ogdf::EmbedderModule.
Declaration and a partial implementation of a Hypergraph class partly based on the original classes f...
Declares HypergraphAttributes storing specific attributes related to hypergraph layout drawings.
Declaration of an interface for hypergraph layout algorithms.
Declaration of interface for planar layout algorithms (used in planarization approach).
Declaration of a base class for planar representations of graphs and cluster graphs.
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:214
Base class for crossing minimization algorithms.
Base class for embedder algorithms.
Copies of graphs with mapping between nodes and edges.
Definition GraphCopy.h:59
Stores additional attributes of edge standard representation of a hypergraph.
Stores additional attributes of a hypergraph.
void removeShell(PlanRep &planarRep, NodePair &st)
void setConstraintIO(bool pConstraintIO)
Sets the Input / Output drawing requirement.
double ratio() const
Returns the ratio between width and height of a drawing.
void setPlanarLayoutModule(LayoutPlanRepModule *pPlanarLayoutModule)
Sets the module option for the planar layout.
int crossings() const
Returns the number of crossings in computed layout.
double m_ratio
The ration between width and height of a drawing.
void insertShell(GraphCopySimple &planarRep, List< node > &src, List< node > &tgt, List< edge > &fixedShell)
std::unique_ptr< CrossingMinimizationModule > m_crossingMinimizationModule
The module for crossing minimization.
void packAllCC(const PlanRep &planarRep, const GraphCopySimple &gc, HypergraphAttributesES &pHA, Array< DPoint > &bounding)
void layout(HypergraphAttributesES &pHA)
void setCrossingMinimizationModule(CrossingMinimizationModule *pCrossingMinimizationModule)
Sets the module option for crossing minimization.
Profile m_profile
Defines the profile of the layout (eg. Electric Circuit).
int m_crossings
The number of crossings in the layout.
bool m_constraintPorts
Defines whether inputs and outputs are placed on different "sides".
bool m_constraintIO
Defines whether a drawing IO constraint is desired or not.
void setEmbeddingModule(EmbedderModule *pEmbeddingModule)
Sets the module option for embedding.
std::unique_ptr< LayoutPlanRepModule > m_planarLayoutModule
The module for computing the final layout.
std::unique_ptr< EmbedderModule > m_embeddingModule
The module for embedding planarization.
Profile
Final appearance is driven by given profile.
void setProfile(Profile pProfile)
Sets the layout profile.
void applyProfile(HypergraphAttributesES &HA)
HypergraphLayoutES & operator=(const HypergraphLayoutES &hl)
Assignment operator.
virtual void call(HypergraphAttributes &HA) override
Computes a layout of hypergraph given by HA.
Interface of hypergraph layout algorithms.
Interface for planar layout algorithms (used in the planarization approach).
Doubly linked lists (maintaining the length of the list).
Definition List.h:1435
Planarized representations (of a connected component) of a graph.
Definition PlanRep.h:57
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
Definition of exception classes.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.