The algorithm computes a planar embedding with minimum cost. More...
#include <ogdf/planarity/EmbedderOptimalFlexDraw.h>
Public Member Functions | |
EmbedderOptimalFlexDraw () | |
void | cost (EdgeArray< int > *cost) |
Sets bend costs for each edge. More... | |
virtual void | doCall (Graph &G, adjEntry &adjExternal) override |
Calls the embedder algorithm for graph G . More... | |
void | setMinCostFlowComputer (MinCostFlowModule< int > *pMinCostFlowComputer) |
Sets the module option to compute min-cost flow. More... | |
Public Member Functions inherited from ogdf::EmbedderModule | |
EmbedderModule () | |
Initializes an embedder module. More... | |
virtual | ~EmbedderModule () |
void | call (Graph &G, adjEntry &adjExternal) |
Calls the embedder algorithm for graph G . More... | |
void | operator() (Graph &G, adjEntry &adjExternal) |
Calls the embedder algorithm for graph G . More... | |
Public Member Functions inherited from ogdf::Module | |
Module () | |
Initializes a module. More... | |
virtual | ~Module () |
Public Member Functions inherited from ogdf::Timeouter | |
Timeouter () | |
timeout is turned of by default More... | |
Timeouter (bool t) | |
timeout is turned off (false) or on (true) (with 0 second) More... | |
Timeouter (const Timeouter &t) | |
Timeouter (double t) | |
timeout is set to the given value (seconds) More... | |
~Timeouter () | |
bool | isTimeLimit () const |
returns whether any time limit is set or not More... | |
Timeouter & | operator= (const Timeouter &t) |
double | timeLimit () const |
returns the current time limit for the call More... | |
void | timeLimit (bool t) |
shorthand to turn timelimit off or on (with 0 seconds) More... | |
void | timeLimit (double t) |
sets the time limit for the call (in seconds); <0 means no limit. More... | |
Private Member Functions | |
void | computePrincipalSplitComponentCost (StaticPlanarSPQRTree &T, NodeArray< int > cost[], NodeArray< long long > embedding[], node parent, node mu) |
void | createNetwork (node parent, node mu, int bends, NodeArray< int > cost[], Skeleton &skeleton, EdgeArray< node > &edgeNode, Graph &N, EdgeArray< int > &upper, EdgeArray< int > &perUnitCost, NodeArray< int > &supply) |
void | optimizeOverEmbeddings (StaticPlanarSPQRTree &T, node parent, node mu, int bends, NodeArray< int > cost[], NodeArray< long long > embedding[]) |
Private Attributes | |
EdgeArray< int > * | m_cost |
std::unique_ptr< MinCostFlowModule< int > > | m_minCostFlowComputer |
Additional Inherited Members | |
Public Types inherited from ogdf::Module | |
enum | ReturnType { ReturnType::Feasible, ReturnType::Optimal, ReturnType::NoFeasibleSolution, ReturnType::TimeoutFeasible, ReturnType::TimeoutInfeasible, ReturnType::Error } |
The return type of a module. More... | |
Static Public Member Functions inherited from ogdf::Module | |
static bool | isSolution (ReturnType ret) |
Returns true iff ret indicates that the module returned a feasible solution. More... | |
Protected Attributes inherited from ogdf::Timeouter | |
double | m_timeLimit |
Time limit for module calls (< 0 means no limit). More... | |
The algorithm computes a planar embedding with minimum cost.
See paper "Optimal Orthogonal Graph Drawing with Convex Bend Costs" by Thomas Blasius, Ignaz Rutter, Dorothea Wagner (2012) for details.
Definition at line 52 of file EmbedderOptimalFlexDraw.h.
ogdf::EmbedderOptimalFlexDraw::EmbedderOptimalFlexDraw | ( | ) |
|
private |
|
inline |
Sets bend costs for each edge.
Definition at line 64 of file EmbedderOptimalFlexDraw.h.
|
private |
|
overridevirtual |
Calls the embedder algorithm for graph G
.
G
is guaranteed to be planar. See call .
Implements ogdf::EmbedderModule.
|
private |
|
inline |
Sets the module option to compute min-cost flow.
Definition at line 59 of file EmbedderOptimalFlexDraw.h.
|
private |
Definition at line 69 of file EmbedderOptimalFlexDraw.h.
|
private |
Definition at line 67 of file EmbedderOptimalFlexDraw.h.