# OpenGraph DrawingFramework

v. 2023.09 (Elderberry)

Searching...
No Matches
ogdf::OrthoShaper Class Reference

#include <ogdf/orthogonal/OrthoShaper.h>

## Public Types

enum class  NetworkNodeType { low , high , inner , outer }
Types of network nodes: nodes and faces. More...

## Public Member Functions

OrthoShaper ()

~OrthoShaper ()

bool align ()

void align (bool al)

void call (PlanRep &PG, CombinatorialEmbedding &E, OrthoRep &OR, bool fourPlanar=true)

void call (PlanRepUML &PG, CombinatorialEmbedding &E, OrthoRep &OR, bool fourPlanar=true)

bool distributeEdges ()

void distributeEdges (bool b)

bool fixDegreeFourAngles ()

void fixDegreeFourAngles (bool b)

int getBendBound ()

bool multiAlign ()

void multiAlign (bool b)

void setBendBound (int i)
Set bound for number of bends per edge (none if set to 0). If shape flow computation is unsuccessful, the bound is increased iteratively.

void setDefaultSettings ()

## Private Member Functions

void setAngleBound (edge netArc, int angle, EdgeArray< int > &lowB, EdgeArray< int > &upB, EdgeArray< edge > &aTwin, bool maxBound=true)
Set angle boundary. Warning: sets upper AND lower bounds, therefore may interfere with existing bounds.

## Private Attributes

bool m_align
Try to achieve an alignment in hierarchy levels.

bool m_allowLowZero
allow low degree nodes zero degree (to low for zero...)

bool m_deg4free
allow degree four nodes free angle assignment

bool m_distributeEdges
distribute edges among all sides if degree > 4

bool m_fourPlanar
should the input graph be four planar (no zero degree)

bool m_multiAlign
multi edges aligned on the same side

int m_startBoundBendsPerEdge
Bound on the number of bends per edge for flow.

Do not prefer 180-degree angles.

## Detailed Description

Definition at line 41 of file OrthoShaper.h.

## ◆ NetworkNodeType

 strong

Types of network nodes: nodes and faces.

Enumerator
low
high
inner
outer

Definition at line 44 of file OrthoShaper.h.

## ◆ OrthoShaper()

 ogdf::OrthoShaper::OrthoShaper ( )
inline

Definition at line 46 of file OrthoShaper.h.

## ◆ ~OrthoShaper()

 ogdf::OrthoShaper::~OrthoShaper ( )
inline

Definition at line 48 of file OrthoShaper.h.

## ◆ align() [1/2]

 bool ogdf::OrthoShaper::align ( )
inline

Definition at line 99 of file OrthoShaper.h.

## ◆ align() [2/2]

 void ogdf::OrthoShaper::align ( bool al )
inline

Definition at line 97 of file OrthoShaper.h.

## ◆ call() [1/2]

 void ogdf::OrthoShaper::call ( PlanRep & PG, CombinatorialEmbedding & E, OrthoRep & OR, bool fourPlanar = true )

## ◆ call() [2/2]

 void ogdf::OrthoShaper::call ( PlanRepUML & PG, CombinatorialEmbedding & E, OrthoRep & OR, bool fourPlanar = true )

## ◆ distributeEdges() [1/2]

 bool ogdf::OrthoShaper::distributeEdges ( )
inline

Definition at line 73 of file OrthoShaper.h.

## ◆ distributeEdges() [2/2]

 void ogdf::OrthoShaper::distributeEdges ( bool b )
inline

Definition at line 76 of file OrthoShaper.h.

## ◆ fixDegreeFourAngles() [1/2]

 bool ogdf::OrthoShaper::fixDegreeFourAngles ( )
inline

Definition at line 91 of file OrthoShaper.h.

## ◆ fixDegreeFourAngles() [2/2]

 void ogdf::OrthoShaper::fixDegreeFourAngles ( bool b )
inline

Definition at line 94 of file OrthoShaper.h.

## ◆ getBendBound()

 int ogdf::OrthoShaper::getBendBound ( )
inline

Definition at line 108 of file OrthoShaper.h.

## ◆ multiAlign() [1/2]

 bool ogdf::OrthoShaper::multiAlign ( )
inline

Definition at line 79 of file OrthoShaper.h.

## ◆ multiAlign() [2/2]

 void ogdf::OrthoShaper::multiAlign ( bool b )
inline

Definition at line 82 of file OrthoShaper.h.

## ◆ setAngleBound()

 void ogdf::OrthoShaper::setAngleBound ( edge netArc, int angle, EdgeArray< int > & lowB, EdgeArray< int > & upB, EdgeArray< edge > & aTwin, bool maxBound = true )
inlineprivate

Set angle boundary. Warning: sets upper AND lower bounds, therefore may interfere with existing bounds.

Definition at line 157 of file OrthoShaper.h.

## ◆ setBendBound()

 void ogdf::OrthoShaper::setBendBound ( int i )
inline

Set bound for number of bends per edge (none if set to 0). If shape flow computation is unsuccessful, the bound is increased iteratively.

Definition at line 103 of file OrthoShaper.h.

## ◆ setDefaultSettings()

 void ogdf::OrthoShaper::setDefaultSettings ( )
inline

Definition at line 61 of file OrthoShaper.h.

inline

Definition at line 85 of file OrthoShaper.h.

 void ogdf::OrthoShaper::traditional ( bool b )
inline

Definition at line 88 of file OrthoShaper.h.

## ◆ m_align

 bool ogdf::OrthoShaper::m_align
private

Try to achieve an alignment in hierarchy levels.

Definition at line 138 of file OrthoShaper.h.

## ◆ m_allowLowZero

 bool ogdf::OrthoShaper::m_allowLowZero
private

allow low degree nodes zero degree (to low for zero...)

Definition at line 120 of file OrthoShaper.h.

## ◆ m_deg4free

 bool ogdf::OrthoShaper::m_deg4free
private

allow degree four nodes free angle assignment

Definition at line 126 of file OrthoShaper.h.

## ◆ m_distributeEdges

 bool ogdf::OrthoShaper::m_distributeEdges
private

distribute edges among all sides if degree > 4

Definition at line 112 of file OrthoShaper.h.

## ◆ m_fourPlanar

 bool ogdf::OrthoShaper::m_fourPlanar
private

should the input graph be four planar (no zero degree)

Definition at line 116 of file OrthoShaper.h.

## ◆ m_multiAlign

 bool ogdf::OrthoShaper::m_multiAlign
private

multi edges aligned on the same side

Definition at line 123 of file OrthoShaper.h.

## ◆ m_startBoundBendsPerEdge

 int ogdf::OrthoShaper::m_startBoundBendsPerEdge
private

Bound on the number of bends per edge for flow.

If == 0, no bound is used.

A maximum number of bends per edge can be specified in m_startBoundBendsPerEdge. If the algorithm is not successful in producing a bend minimal representation subject to startBoundBendsPerEdge, it successively enhances the bound by one trying to compute an orthogonal representation.

Using m_startBoundBendsPerEdge may not produce a bend minimal representation in general.

Definition at line 153 of file OrthoShaper.h.