Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::OrthoShaper Class Reference

#include <ogdf/orthogonal/OrthoShaper.h>

Public Types

enum  NetworkNodeType { NetworkNodeType::low, NetworkNodeType::high, NetworkNodeType::inner, NetworkNodeType::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. More...
 
void setDefaultSettings ()
 
bool traditional ()
 
void traditional (bool b)
 

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. More...
 

Private Attributes

bool m_align
 Try to achieve an alignment in hierarchy levels. More...
 
bool m_allowLowZero
 allow low degree nodes zero degree (to low for zero...) More...
 
bool m_deg4free
 allow degree four nodes free angle assignment More...
 
bool m_distributeEdges
 distribute edges among all sides if degree > 4 More...
 
bool m_fourPlanar
 should the input graph be four planar (no zero degree) More...
 
bool m_multiAlign
 multi edges aligned on the same side More...
 
int m_startBoundBendsPerEdge
 Bound on the number of bends per edge for flow. More...
 
bool m_traditional
 Do not prefer 180-degree angles. More...
 

Detailed Description

Definition at line 45 of file OrthoShaper.h.

Member Enumeration Documentation

◆ NetworkNodeType

Types of network nodes: nodes and faces.

Enumerator
low 
high 
inner 
outer 

Definition at line 48 of file OrthoShaper.h.

Constructor & Destructor Documentation

◆ OrthoShaper()

ogdf::OrthoShaper::OrthoShaper ( )
inline

Definition at line 50 of file OrthoShaper.h.

◆ ~OrthoShaper()

ogdf::OrthoShaper::~OrthoShaper ( )
inline

Definition at line 52 of file OrthoShaper.h.

Member Function Documentation

◆ align() [1/2]

bool ogdf::OrthoShaper::align ( )
inline

Definition at line 103 of file OrthoShaper.h.

◆ align() [2/2]

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

Definition at line 101 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 77 of file OrthoShaper.h.

◆ distributeEdges() [2/2]

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

Definition at line 80 of file OrthoShaper.h.

◆ fixDegreeFourAngles() [1/2]

bool ogdf::OrthoShaper::fixDegreeFourAngles ( )
inline

Definition at line 95 of file OrthoShaper.h.

◆ fixDegreeFourAngles() [2/2]

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

Definition at line 98 of file OrthoShaper.h.

◆ getBendBound()

int ogdf::OrthoShaper::getBendBound ( )
inline

Definition at line 112 of file OrthoShaper.h.

◆ multiAlign() [1/2]

bool ogdf::OrthoShaper::multiAlign ( )
inline

Definition at line 83 of file OrthoShaper.h.

◆ multiAlign() [2/2]

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

Definition at line 86 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 161 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 107 of file OrthoShaper.h.

◆ setDefaultSettings()

void ogdf::OrthoShaper::setDefaultSettings ( )
inline

Definition at line 65 of file OrthoShaper.h.

◆ traditional() [1/2]

bool ogdf::OrthoShaper::traditional ( )
inline

Definition at line 89 of file OrthoShaper.h.

◆ traditional() [2/2]

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

Definition at line 92 of file OrthoShaper.h.

Member Data Documentation

◆ m_align

bool ogdf::OrthoShaper::m_align
private

Try to achieve an alignment in hierarchy levels.

Definition at line 142 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 124 of file OrthoShaper.h.

◆ m_deg4free

bool ogdf::OrthoShaper::m_deg4free
private

allow degree four nodes free angle assignment

Definition at line 130 of file OrthoShaper.h.

◆ m_distributeEdges

bool ogdf::OrthoShaper::m_distributeEdges
private

distribute edges among all sides if degree > 4

Definition at line 116 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 120 of file OrthoShaper.h.

◆ m_multiAlign

bool ogdf::OrthoShaper::m_multiAlign
private

multi edges aligned on the same side

Definition at line 127 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 157 of file OrthoShaper.h.

◆ m_traditional

bool ogdf::OrthoShaper::m_traditional
private

Do not prefer 180-degree angles.

Traditional is not tamassia, traditional is a kandinsky-ILP-like network with node supply 4, not traditional interprets angle flow zero as 180 degree, "flow through the node"

Definition at line 139 of file OrthoShaper.h.


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