PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::AutoLayoutDAG Class Reference

Automatic layout for directed acyclic graph Refer to "Sugiyama Algorithm" by Nikola S. Nikolov[2015] for details. More...

#include <AutoLayoutDAG.h>

Collaboration diagram for dyno::AutoLayoutDAG:

Public Member Functions

 AutoLayoutDAG (DirectedAcyclicGraph *dag)
 
 ~AutoLayoutDAG ()
 
void update ()
 
size_t layerNumber ()
 
size_t OtherVerticesSize ()
 
std::set< ObjectId > & getOtherVertices ()
 
std::vector< ObjectId > & layer (size_t l)
 

Protected Member Functions

void constructHierarchy ()
 
void addDummyVertices ()
 
void minimizeEdgeCrossings ()
 

Private Attributes

DirectedAcyclicGraphpDAG
 
std::set< ObjectIdmVertices
 
std::map< ObjectId, std::unordered_set< ObjectId > > mEdges
 
std::map< ObjectId, std::unordered_set< ObjectId > > mReverseEdges
 
std::map< ObjectId, int > mLayers
 
std::map< ObjectId, int > mXCoordinate
 
std::vector< std::vector< ObjectId > > mNodeLayers
 
size_t mLayerNum = 0
 
std::set< ObjectIdOtherVertices
 
int mIterNum = 1
 

Detailed Description

Automatic layout for directed acyclic graph Refer to "Sugiyama Algorithm" by Nikola S. Nikolov[2015] for details.

Definition at line 24 of file AutoLayoutDAG.h.

Constructor & Destructor Documentation

◆ AutoLayoutDAG()

dyno::AutoLayoutDAG::AutoLayoutDAG ( DirectedAcyclicGraph * dag)

Definition at line 6 of file AutoLayoutDAG.cpp.

◆ ~AutoLayoutDAG()

dyno::AutoLayoutDAG::~AutoLayoutDAG ( )

Definition at line 39 of file AutoLayoutDAG.cpp.

Member Function Documentation

◆ addDummyVertices()

void dyno::AutoLayoutDAG::addDummyVertices ( )
protected

Definition at line 166 of file AutoLayoutDAG.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructHierarchy()

void dyno::AutoLayoutDAG::constructHierarchy ( )
protected

Definition at line 72 of file AutoLayoutDAG.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOtherVertices()

std::set< ObjectId > & dyno::AutoLayoutDAG::getOtherVertices ( )
inline

Definition at line 36 of file AutoLayoutDAG.h.

Here is the caller graph for this function:

◆ layer()

std::vector< ObjectId > & dyno::AutoLayoutDAG::layer ( size_t l)
inline

Definition at line 38 of file AutoLayoutDAG.h.

Here is the caller graph for this function:

◆ layerNumber()

size_t dyno::AutoLayoutDAG::layerNumber ( )
inline

Definition at line 32 of file AutoLayoutDAG.h.

Here is the caller graph for this function:

◆ minimizeEdgeCrossings()

void dyno::AutoLayoutDAG::minimizeEdgeCrossings ( )
protected

Definition at line 222 of file AutoLayoutDAG.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OtherVerticesSize()

size_t dyno::AutoLayoutDAG::OtherVerticesSize ( )
inline

Definition at line 34 of file AutoLayoutDAG.h.

◆ update()

void dyno::AutoLayoutDAG::update ( )

Definition at line 63 of file AutoLayoutDAG.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ mEdges

std::map<ObjectId, std::unordered_set<ObjectId> > dyno::AutoLayoutDAG::mEdges
private

Definition at line 51 of file AutoLayoutDAG.h.

◆ mIterNum

int dyno::AutoLayoutDAG::mIterNum = 1
private

Definition at line 62 of file AutoLayoutDAG.h.

◆ mLayerNum

size_t dyno::AutoLayoutDAG::mLayerNum = 0
private

Definition at line 58 of file AutoLayoutDAG.h.

◆ mLayers

std::map<ObjectId, int> dyno::AutoLayoutDAG::mLayers
private

Definition at line 54 of file AutoLayoutDAG.h.

◆ mNodeLayers

std::vector<std::vector<ObjectId> > dyno::AutoLayoutDAG::mNodeLayers
private

Definition at line 57 of file AutoLayoutDAG.h.

◆ mReverseEdges

std::map<ObjectId, std::unordered_set<ObjectId> > dyno::AutoLayoutDAG::mReverseEdges
private

Definition at line 52 of file AutoLayoutDAG.h.

◆ mVertices

std::set<ObjectId> dyno::AutoLayoutDAG::mVertices
private

Definition at line 50 of file AutoLayoutDAG.h.

◆ mXCoordinate

std::map<ObjectId, int> dyno::AutoLayoutDAG::mXCoordinate
private

Definition at line 55 of file AutoLayoutDAG.h.

◆ OtherVertices

std::set<ObjectId> dyno::AutoLayoutDAG::OtherVertices
private

Definition at line 60 of file AutoLayoutDAG.h.

◆ pDAG

DirectedAcyclicGraph* dyno::AutoLayoutDAG::pDAG
private

Definition at line 48 of file AutoLayoutDAG.h.


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