Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
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 ()
 
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.
 

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.
 
bool m_traditional
 Do not prefer 180-degree angles.
 

Detailed Description

Definition at line 41 of file OrthoShaper.h.

Member Enumeration Documentation

◆ NetworkNodeType

Types of network nodes: nodes and faces.

Enumerator
low 
high 
inner 
outer 

Definition at line 44 of file OrthoShaper.h.

Constructor & Destructor Documentation

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

Member Function Documentation

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

◆ traditional() [1/2]

bool ogdf::OrthoShaper::traditional ( )
inline

Definition at line 85 of file OrthoShaper.h.

◆ traditional() [2/2]

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

Definition at line 88 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 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.

◆ 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 135 of file OrthoShaper.h.


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