Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::MixedModelBase Class Reference

#include <ogdf/planarlayout/mixed_model_layout/MixedModelBase.h>

Public Member Functions

 MixedModelBase (PlanRep &PG, GridLayout &gridLayout)
 
virtual ~MixedModelBase ()
 
void assignIopCoords ()
 Computes the relative coordinates of the in- and outpoints, incl. height(v), depth(v). More...
 
void computeOrder (AugmentationModule &augmenter, EmbedderModule *pEmbedder, adjEntry adjExternal, ShellingOrderModule &compOrder)
 Computes the ordered partition (incl. m_leftOp[k], em_rightOp[k]) and constructs the in- and outpoint lists. More...
 
void computeXCoords ()
 Computes the absolute x-coordinates x[v] of all nodes in the ordering, furthermore dyla[k] and dyra[k] (used by compute_y_coordinates) More...
 
void computeYCoords ()
 Computes the absolute y-coordinates y[v] of all nodes in the ordering. More...
 
MixedModelBaseoperator= (const MixedModelBase &)=delete
 
void placeNodes ()
 Implements the placement step. Computes x[v] and y[v]. More...
 
void postprocessing1 ()
 Tries to reduce the number of bends by changing the outpoints of nodes with indeg and outdeg 2. More...
 
void postprocessing2 ()
 Tries to reduce the number of bends by moving degree-2 nodes on bend points. More...
 
void setBends ()
 Assigns polylines to edges of the original graph and computes the x- and y-coordinates of deg-1-nodes not in the ordering. More...
 
void printMMOrder (std::ostream &os)
 Functions for debugging output. More...
 
void printInOutPoints (std::ostream &os)
 
void print (std::ostream &os, const InOutPoint &iop)
 
void printNodeCoords (std::ostream &os)
 

Private Member Functions

bool exists (adjEntry adj)
 
void firstPoint (int &x, int &y, adjEntry adj)
 
bool hasLeft (int k) const
 Determine if the kth set in the ordered partition has a "real" left vertex. More...
 
bool hasRight (int k) const
 Determine if the kth set in the ordered partition has a "real" right vertex. More...
 
bool isRedundant (int x1, int y1, int x2, int y2, int x3, int y3)
 
void removeDeg1Nodes ()
 Removes degree-1 nodes and store informations for restoring them. More...
 

Private Attributes

ArrayBuffer< PlanRep::Deg1RestoreInfom_deg1RestoreStack
 
NodeArray< int > m_dxla
 
NodeArray< int > m_dxra
 
Array< int > m_dyl
 
Array< int > m_dyr
 
GridLayoutm_gridLayout
 
IOPoints m_iops
 
Array< ListConstIterator< InOutPoint > > m_leftOp
 
MMOrder m_mmo
 
NodeArray< ListConstIterator< InOutPoint > > m_nextLeft
 
NodeArray< ListConstIterator< InOutPoint > > m_nextRight
 
PlanRepm_PG
 
Array< ListConstIterator< InOutPoint > > m_rightOp
 

Detailed Description

Definition at line 50 of file MixedModelBase.h.

Constructor & Destructor Documentation

◆ MixedModelBase()

ogdf::MixedModelBase::MixedModelBase ( PlanRep PG,
GridLayout gridLayout 
)
inline

Definition at line 52 of file MixedModelBase.h.

◆ ~MixedModelBase()

virtual ogdf::MixedModelBase::~MixedModelBase ( )
inlinevirtual

Definition at line 55 of file MixedModelBase.h.

Member Function Documentation

◆ assignIopCoords()

void ogdf::MixedModelBase::assignIopCoords ( )

Computes the relative coordinates of the in- and outpoints, incl. height(v), depth(v).

◆ computeOrder()

void ogdf::MixedModelBase::computeOrder ( AugmentationModule augmenter,
EmbedderModule pEmbedder,
adjEntry  adjExternal,
ShellingOrderModule compOrder 
)

Computes the ordered partition (incl. m_leftOp[k], em_rightOp[k]) and constructs the in- and outpoint lists.

◆ computeXCoords()

void ogdf::MixedModelBase::computeXCoords ( )

Computes the absolute x-coordinates x[v] of all nodes in the ordering, furthermore dyla[k] and dyra[k] (used by compute_y_coordinates)

◆ computeYCoords()

void ogdf::MixedModelBase::computeYCoords ( )

Computes the absolute y-coordinates y[v] of all nodes in the ordering.

◆ exists()

bool ogdf::MixedModelBase::exists ( adjEntry  adj)
inlineprivate

Definition at line 110 of file MixedModelBase.h.

◆ firstPoint()

void ogdf::MixedModelBase::firstPoint ( int &  x,
int &  y,
adjEntry  adj 
)
private

◆ hasLeft()

bool ogdf::MixedModelBase::hasLeft ( int  k) const
private

Determine if the kth set in the ordered partition has a "real" left vertex.

◆ hasRight()

bool ogdf::MixedModelBase::hasRight ( int  k) const
private

Determine if the kth set in the ordered partition has a "real" right vertex.

◆ isRedundant()

bool ogdf::MixedModelBase::isRedundant ( int  x1,
int  y1,
int  x2,
int  y2,
int  x3,
int  y3 
)
private

◆ operator=()

MixedModelBase& ogdf::MixedModelBase::operator= ( const MixedModelBase )
delete

◆ placeNodes()

void ogdf::MixedModelBase::placeNodes ( )

Implements the placement step. Computes x[v] and y[v].

◆ postprocessing1()

void ogdf::MixedModelBase::postprocessing1 ( )

Tries to reduce the number of bends by changing the outpoints of nodes with indeg and outdeg 2.

◆ postprocessing2()

void ogdf::MixedModelBase::postprocessing2 ( )

Tries to reduce the number of bends by moving degree-2 nodes on bend points.

◆ print()

void ogdf::MixedModelBase::print ( std::ostream &  os,
const InOutPoint iop 
)

◆ printInOutPoints()

void ogdf::MixedModelBase::printInOutPoints ( std::ostream &  os)

◆ printMMOrder()

void ogdf::MixedModelBase::printMMOrder ( std::ostream &  os)

Functions for debugging output.

◆ printNodeCoords()

void ogdf::MixedModelBase::printNodeCoords ( std::ostream &  os)

◆ removeDeg1Nodes()

void ogdf::MixedModelBase::removeDeg1Nodes ( )
private

Removes degree-1 nodes and store informations for restoring them.

◆ setBends()

void ogdf::MixedModelBase::setBends ( )

Assigns polylines to edges of the original graph and computes the x- and y-coordinates of deg-1-nodes not in the ordering.

Member Data Documentation

◆ m_deg1RestoreStack

ArrayBuffer<PlanRep::Deg1RestoreInfo> ogdf::MixedModelBase::m_deg1RestoreStack
private

Definition at line 103 of file MixedModelBase.h.

◆ m_dxla

NodeArray<int> ogdf::MixedModelBase::m_dxla
private

Definition at line 108 of file MixedModelBase.h.

◆ m_dxra

NodeArray<int> ogdf::MixedModelBase::m_dxra
private

Definition at line 108 of file MixedModelBase.h.

◆ m_dyl

Array<int> ogdf::MixedModelBase::m_dyl
private

Definition at line 105 of file MixedModelBase.h.

◆ m_dyr

Array<int> ogdf::MixedModelBase::m_dyr
private

Definition at line 105 of file MixedModelBase.h.

◆ m_gridLayout

GridLayout& ogdf::MixedModelBase::m_gridLayout
private

Definition at line 99 of file MixedModelBase.h.

◆ m_iops

IOPoints ogdf::MixedModelBase::m_iops
private

Definition at line 102 of file MixedModelBase.h.

◆ m_leftOp

Array<ListConstIterator<InOutPoint> > ogdf::MixedModelBase::m_leftOp
private

Definition at line 106 of file MixedModelBase.h.

◆ m_mmo

MMOrder ogdf::MixedModelBase::m_mmo
private

Definition at line 101 of file MixedModelBase.h.

◆ m_nextLeft

NodeArray<ListConstIterator<InOutPoint> > ogdf::MixedModelBase::m_nextLeft
private

Definition at line 107 of file MixedModelBase.h.

◆ m_nextRight

NodeArray<ListConstIterator<InOutPoint> > ogdf::MixedModelBase::m_nextRight
private

Definition at line 107 of file MixedModelBase.h.

◆ m_PG

PlanRep& ogdf::MixedModelBase::m_PG
private

Definition at line 97 of file MixedModelBase.h.

◆ m_rightOp

Array<ListConstIterator<InOutPoint> > ogdf::MixedModelBase::m_rightOp
private

Definition at line 106 of file MixedModelBase.h.


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