Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

ogdf::HypergraphLayoutES Class Reference

#include <ogdf/hypergraph/HypergraphLayout.h>

+ Inheritance diagram for ogdf::HypergraphLayoutES:

Public Types

enum  Profile { Profile::Normal = 0x000001, Profile::ElectricCircuit = 0x000002 }
 Final appearance is driven by given profile. More...
 

Public Member Functions

 HypergraphLayoutES ()
 
virtual ~HypergraphLayoutES ()
 
virtual void call (HypergraphAttributes &HA) override
 Computes a layout of hypergraph given by HA. More...
 
int crossings () const
 Returns the number of crossings in computed layout. More...
 
HypergraphLayoutESoperator= (const HypergraphLayoutES &hl)
 Assignment operator. More...
 
double ratio () const
 Returns the ratio between width and height of a drawing. More...
 
void setConstraintIO (bool pConstraintIO)
 Sets the Input / Output drawing requirement. More...
 
void setProfile (Profile pProfile)
 Sets the layout profile. More...
 
- Public Member Functions inherited from ogdf::HypergraphLayoutModule
 HypergraphLayoutModule ()
 Initializes a layout module. More...
 
virtual ~HypergraphLayoutModule ()
 
void operator() (HypergraphAttributes &HA)
 Computes a layout of a hypergraph given by HA. More...
 

Private Attributes

bool m_constraintIO
 Defines whether a drawing IO constraint is desired or not. More...
 
bool m_constraintPorts
 Defines whether inputs and outputs are placed on different "sides". More...
 
std::unique_ptr< CrossingMinimizationModulem_crossingMinimizationModule
 The module for crossing minimization. More...
 
int m_crossings
 The number of crossings in the layout. More...
 
std::unique_ptr< EmbedderModulem_embeddingModule
 The module for embedding planarization. More...
 
std::unique_ptr< LayoutPlanRepModulem_planarLayoutModule
 The module for computing the final layout. More...
 
Profile m_profile
 Defines the profile of the layout (eg. Electric Circuit). More...
 
double m_ratio
 The ration between width and height of a drawing. More...
 

Modules

void setPlanarLayoutModule (LayoutPlanRepModule *pPlanarLayoutModule)
 Sets the module option for the planar layout. More...
 
void setCrossingMinimizationModule (CrossingMinimizationModule *pCrossingMinimizationModule)
 Sets the module option for crossing minimization. More...
 
void setEmbeddingModule (EmbedderModule *pEmbeddingModule)
 Sets the module option for embedding. More...
 
void layout (HypergraphAttributesES &pHA)
 
void packAllCC (const PlanRep &planarRep, const GraphCopySimple &gc, HypergraphAttributesES &pHA, Array< DPoint > &bounding)
 
void insertShell (GraphCopySimple &planarRep, List< node > &src, List< node > &tgt, List< edge > &fixedShell)
 
void removeShell (PlanRep &planarRep, NodePair &st)
 
void applyProfile (HypergraphAttributesES &HA)
 

Additional Inherited Members

- Public Attributes inherited from ogdf::HypergraphLayoutModule
 OGDF_MALLOC_NEW_DELETE
 

Detailed Description

Definition at line 57 of file HypergraphLayout.h.

Member Enumeration Documentation

◆ Profile

Final appearance is driven by given profile.

Enumerator
Normal 
ElectricCircuit 

Definition at line 62 of file HypergraphLayout.h.

Constructor & Destructor Documentation

◆ HypergraphLayoutES()

ogdf::HypergraphLayoutES::HypergraphLayoutES ( )

◆ ~HypergraphLayoutES()

virtual ogdf::HypergraphLayoutES::~HypergraphLayoutES ( )
inlinevirtual

Definition at line 100 of file HypergraphLayout.h.

Member Function Documentation

◆ applyProfile()

void ogdf::HypergraphLayoutES::applyProfile ( HypergraphAttributesES HA)
private

◆ call()

virtual void ogdf::HypergraphLayoutES::call ( HypergraphAttributes HA)
overridevirtual

Computes a layout of hypergraph given by HA.

This method is the actual algorithm call and must be implemented by derived classes.

Parameters
HAis the input hypergraph attributes class.

Implements ogdf::HypergraphLayoutModule.

◆ crossings()

int ogdf::HypergraphLayoutES::crossings ( ) const
inline

Returns the number of crossings in computed layout.

Definition at line 114 of file HypergraphLayout.h.

◆ insertShell()

void ogdf::HypergraphLayoutES::insertShell ( GraphCopySimple planarRep,
List< node > &  src,
List< node > &  tgt,
List< edge > &  fixedShell 
)
private

◆ layout()

void ogdf::HypergraphLayoutES::layout ( HypergraphAttributesES pHA)
private

◆ operator=()

HypergraphLayoutES& ogdf::HypergraphLayoutES::operator= ( const HypergraphLayoutES hl)

Assignment operator.

◆ packAllCC()

void ogdf::HypergraphLayoutES::packAllCC ( const PlanRep planarRep,
const GraphCopySimple gc,
HypergraphAttributesES pHA,
Array< DPoint > &  bounding 
)
private

◆ ratio()

double ogdf::HypergraphLayoutES::ratio ( ) const
inline

Returns the ratio between width and height of a drawing.

Definition at line 120 of file HypergraphLayout.h.

◆ removeShell()

void ogdf::HypergraphLayoutES::removeShell ( PlanRep planarRep,
NodePair st 
)
private

◆ setConstraintIO()

void ogdf::HypergraphLayoutES::setConstraintIO ( bool  pConstraintIO)
inline

Sets the Input / Output drawing requirement.

Definition at line 126 of file HypergraphLayout.h.

◆ setCrossingMinimizationModule()

void ogdf::HypergraphLayoutES::setCrossingMinimizationModule ( CrossingMinimizationModule pCrossingMinimizationModule)
inline

Sets the module option for crossing minimization.

The crossing minimization module minimizes the crossings of a hypergraph in an edge standard representation.

Definition at line 164 of file HypergraphLayout.h.

◆ setEmbeddingModule()

void ogdf::HypergraphLayoutES::setEmbeddingModule ( EmbedderModule pEmbeddingModule)
inline

Sets the module option for embedding.

When a planarized edge representation of a hypergraph in computed, we have to found a way how to embed it (ie. find faces).

Definition at line 176 of file HypergraphLayout.h.

◆ setPlanarLayoutModule()

void ogdf::HypergraphLayoutES::setPlanarLayoutModule ( LayoutPlanRepModule pPlanarLayoutModule)
inline

Sets the module option for the planar layout.

Crossing minimization produces a planar representation of a hypergraph such that all crossings are replaced by additional dummy nodes. This is in fact a planar graph and hence it can be drawn quite easily by any planar layout algorithm.

Definition at line 151 of file HypergraphLayout.h.

◆ setProfile()

void ogdf::HypergraphLayoutES::setProfile ( Profile  pProfile)
inline

Sets the layout profile.

Definition at line 132 of file HypergraphLayout.h.

Member Data Documentation

◆ m_constraintIO

bool ogdf::HypergraphLayoutES::m_constraintIO
private

Defines whether a drawing IO constraint is desired or not.

Definition at line 76 of file HypergraphLayout.h.

◆ m_constraintPorts

bool ogdf::HypergraphLayoutES::m_constraintPorts
private

Defines whether inputs and outputs are placed on different "sides".

Definition at line 80 of file HypergraphLayout.h.

◆ m_crossingMinimizationModule

std::unique_ptr<CrossingMinimizationModule> ogdf::HypergraphLayoutES::m_crossingMinimizationModule
private

The module for crossing minimization.

Definition at line 89 of file HypergraphLayout.h.

◆ m_crossings

int ogdf::HypergraphLayoutES::m_crossings
private

The number of crossings in the layout.

Definition at line 73 of file HypergraphLayout.h.

◆ m_embeddingModule

std::unique_ptr<EmbedderModule> ogdf::HypergraphLayoutES::m_embeddingModule
private

The module for embedding planarization.

Definition at line 92 of file HypergraphLayout.h.

◆ m_planarLayoutModule

std::unique_ptr<LayoutPlanRepModule> ogdf::HypergraphLayoutES::m_planarLayoutModule
private

The module for computing the final layout.

Definition at line 86 of file HypergraphLayout.h.

◆ m_profile

Profile ogdf::HypergraphLayoutES::m_profile
private

Defines the profile of the layout (eg. Electric Circuit).

Definition at line 83 of file HypergraphLayout.h.

◆ m_ratio

double ogdf::HypergraphLayoutES::m_ratio
private

The ration between width and height of a drawing.

Definition at line 70 of file HypergraphLayout.h.


The documentation for this class was generated from the following file: