Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::CompactionConstraintGraph< ATYPE > Class Template Reference

Represents a constraint graph used for compaction. More...

#include <ogdf/orthogonal/CompactionConstraintGraph.h>

+ Inheritance diagram for ogdf::CompactionConstraintGraph< ATYPE >:

Classes

struct  Interval
 Represents an interval on the sweep line. More...
 
class  SegmentComparer
 Comparer class used for sorting segments by increasing position (given by segPos) such that two overlapping segments come in the order imposed by the embedding (given by secSort: segment which comes first has secSort = 0, the other has 1) More...
 

Public Member Functions

 CompactionConstraintGraph (const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, ATYPE sep, int costGen=1, int costAssoc=1, bool align=false)
 Construction.
 
bool areMulti (edge e1, edge e2) const
 Return PG result for flowcompaction.
 
bool centerPriority ()
 Gets centerPriority (center single edges?)
 
void centerPriority (bool b)
 Sets centerPriority (center single edges?)
 
ATYPE computeTotalCosts (const NodeArray< ATYPE > &pos) const
 Computes the total costs for coordintes given by pos, i.e., the sum of the weighted lengths of edges in the constraint graph.
 
ATYPE extraOfs (node v) const
 Returns extraNode position, change to save mem, only need some entries.
 
void insertVertexSizeArcs (const PlanRep &PG, const NodeArray< ATYPE > &sizeOrig, const MinimumEdgeDistances< ATYPE > &minDist)
 Inserts arcs for respecting sizes of vertices and achieving desired placement of generalizations if vertices are represented by tight cages. Also corrects length of arcs belonging to cages which are adjacent to a corner; takes special distances between edge segments attached at a vertex (delta's and epsilon's) into account.
 
void insertVertexSizeArcs (const PlanRep &PG, const NodeArray< ATYPE > &sizeOrig, const RoutingChannel< ATYPE > &rc)
 Inserts arcs for respecting sizes of vertices and achieving desired placement of generalizations if vertices are represented by variable cages; also corrects length of arcs belonging to cages which are adjacent to a corner; takes routing channels into account.
 
void insertVisibilityArcs (const PlanRep &PG, const NodeArray< ATYPE > &posDir, const NodeArray< ATYPE > &posOppDir)
 Inserts arcs connecting segments which can see each other in a drawing of the associated planarized representation PG which is given by posDir and posOppDir.
 
void insertVisibilityArcs (const PlanRep &PG, const NodeArray< ATYPE > &posDir, const NodeArray< ATYPE > &posOrthDir, const MinimumEdgeDistances< ATYPE > &minDist)
 
bool isFeasible (const NodeArray< ATYPE > &pos)
 Performs feasibility test for position assignment pos, i.e., checks if the segment positions given by pos fulfill the constraints in the compaction constraint graph (for debuging only)
 
ATYPE length (edge e) const
 Returns length of edge e.
 
ATYPE separation () const
 Returns the separation value.
 
void setMinimumSeparation (const PlanRep &PG, const NodeArray< int > &coord, const MinimumEdgeDistances< ATYPE > &minDist)
 Sets min separation for multi edge original.
 
- Public Member Functions inherited from ogdf::CompactionConstraintGraphBase
void align (bool b)
 Triggers alignment (=>some special edge handling to support al.)
 
bool alignmentArc (edge e) const
 Returns if arc is important for alignment. These are the arcs representing node to gen. merger edges.
 
edge pathToOriginal (node v)
 
bool verticalGen (edge e) const
 Returns true if e is vertical edge in PlanRepUML hierarchy.
 
bool verticalArc (edge e) const
 Returns true if e is basic arc of vertical edge in PlanRepUML hierarchy.
 
- Public Member Functions inherited from ogdf::CommonCompactionConstraintGraphBase
edge basicArc (edge e) const
 Returns constraint arc representing input edge e in constraint graph.
 
void computeTopologicalSegmentNum (NodeArray< int > &topNum)
 Computes topological numbering on the segments of the constraint graph.
 
void embed ()
 Embeds constraint graph such that all sources and sinks lie in a common face.
 
bool extraNode (node v) const
 Returns node status.
 
void removeRedundantVisibArcs (SListPure< Tuple2< node, node > > &visibArcs)
 Removes "arcs" from visibArcs which we already have in the constraint graph (as basic arcs)
 
ConstraintEdgeType typeOf (edge e) const
 Returns type of edge e.
 
const GraphgetGraph () const
 Returns underlying graph.
 
GraphgetGraph ()
 
const OrthoRepgetOrthoRep () const
 Returns underlying OrthoRep.
 
const PlanRepgetPlanRep () const
 
const SListPure< node > & nodesIn (node v) const
 Returns list of nodes contained in segment v.
 
node pathNodeOf (node v) const
 Returns the segment (path node in constraint graph) containing v.
 
int cost (edge e) const
 Returns cost of edge e.
 
node extraRep (node v) const
 Returns extraNode existing anchor representant.
 
bool onBorder (edge e) const
 Returns true if edge lies on cage border.
 
bool fixOnBorder (edge e) const
 Returns true if edge is subject to length fixation if length < sep.
 

Protected Member Functions

void initializeCosts ()
 
void setExtra (node v, node rep, ATYPE ofs)
 Node v has no representation in drawing, only internal representation.
 
- Protected Member Functions inherited from ogdf::CompactionConstraintGraphBase
 CompactionConstraintGraphBase (const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, int costGen=1, int costAssoc=1, bool align=false)
 Construction.
 
- Protected Member Functions inherited from ogdf::CommonCompactionConstraintGraphBase
 CommonCompactionConstraintGraphBase (const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, int costAssoc)
 Build constraint graph with basic arcs.
 
- Protected Member Functions inherited from ogdf::Graph
void assign (const Graph &G, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge)
 
void construct (const Graph &G, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge)
 
void constructInitByActiveNodes (const List< node > &nodeList, const NodeArray< bool > &activeNodes, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge)
 
void constructInitByCC (const CCsInfo &info, int cc, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge)
 Constructs a copy of connected component cc in info.
 
void constructInitByNodes (const Graph &G, const List< node > &nodeList, NodeArray< node > &mapNode, EdgeArray< edge > &mapEdge)
 Constructs a copy of the subgraph of G induced by nodeList.
 
 Graph ()
 Constructs an empty graph.
 
 Graph (const Graph &G)
 Constructs a graph that is a copy of G.
 
virtual ~Graph ()
 Destructor.
 
bool empty () const
 Returns true iff the graph is empty, i.e., contains no nodes.
 
int numberOfNodes () const
 Returns the number of nodes in the graph.
 
int numberOfEdges () const
 Returns the number of edges in the graph.
 
int maxNodeIndex () const
 Returns the largest used node index.
 
int maxEdgeIndex () const
 Returns the largest used edge index.
 
int maxAdjEntryIndex () const
 Returns the largest used adjEntry index.
 
int nodeArrayTableSize () const
 Returns the table size of node arrays associated with this graph.
 
int edgeArrayTableSize () const
 Returns the table size of edge arrays associated with this graph.
 
int adjEntryArrayTableSize () const
 Returns the table size of adjEntry arrays associated with this graph.
 
node firstNode () const
 Returns the first node in the list of all nodes.
 
node lastNode () const
 Returns the last node in the list of all nodes.
 
edge firstEdge () const
 Returns the first edge in the list of all edges.
 
edge lastEdge () const
 Returns the last edge in the list of all edges.
 
node chooseNode (std::function< bool(node)> includeNode=[](node) { return true;}, bool isFastTest=true) const
 Returns a random node.
 
edge chooseEdge (std::function< bool(edge)> includeEdge=[](edge) { return true;}, bool isFastTest=true) const
 Returns a random edge.
 
template<class CONTAINER >
void allNodes (CONTAINER &nodeContainer) const
 Returns a container with all nodes of the graph.
 
template<class CONTAINER >
void allEdges (CONTAINER &edgeContainer) const
 Returns a container with all edges of the graph.
 
node newNode ()
 Creates a new node and returns it.
 
node newNode (int index)
 Creates a new node with predefined index and returns it.
 
edge newEdge (node v, node w)
 Creates a new edge (v,w) and returns it.
 
edge newEdge (node v, node w, int index)
 Creates a new edge (v,w) with predefined index and returns it.
 
edge newEdge (adjEntry adjSrc, adjEntry adjTgt, Direction dir=Direction::after)
 Creates a new edge at predefined positions in the adjacency lists.
 
edge newEdge (node v, adjEntry adjTgt)
 Creates a new edge at predefined positions in the adjacency lists.
 
edge newEdge (adjEntry adjSrc, node w)
 Creates a new edge at predefined positions in the adjacency lists.
 
virtual void delNode (node v)
 Removes node v and all incident edges from the graph.
 
virtual void delEdge (edge e)
 Removes edge e from the graph.
 
virtual void clear ()
 Removes all nodes and all edges from the graph.
 
void insert (const Graph &G, NodeArray< node > &nodeMap)
 Inserts Graph G as a subgraph into this Graph.
 
void insert (const Graph &G)
 Inserts Graph G as a subgraph into this Graph.
 
virtual edge split (edge e)
 Splits edge e into two edges introducing a new node.
 
void unsplit (node u)
 Undoes a split operation.
 
virtual void unsplit (edge eIn, edge eOut)
 Undoes a split operation.
 
node splitNode (adjEntry adjStartLeft, adjEntry adjStartRight)
 Splits a node while preserving the order of adjacency entries.
 
node contract (edge e, bool keepSelfLoops=false)
 Contracts edge e while preserving the order of adjacency entries.
 
void move (edge e, adjEntry adjSrc, Direction dirSrc, adjEntry adjTgt, Direction dirTgt)
 Moves edge e to a different adjacency list.
 
void moveTarget (edge e, node w)
 Moves the target node of edge e to node w.
 
void moveTarget (edge e, adjEntry adjTgt, Direction dir)
 Moves the target node of edge e to a specific position in an adjacency list.
 
void moveSource (edge e, node w)
 Moves the source node of edge e to node w.
 
void moveSource (edge e, adjEntry adjSrc, Direction dir)
 Moves the source node of edge e to a specific position in an adjacency list.
 
edge searchEdge (node v, node w, bool directed=false) const
 Searches and returns an edge connecting nodes v and w in time O( min(deg(v ), deg(w ))).
 
void reverseEdge (edge e)
 Reverses the edge e, i.e., exchanges source and target node.
 
void reverseAllEdges ()
 Reverses all edges in the graph.
 
template<class NODELIST >
void collapse (NODELIST &nodesToCollapse)
 Collapses all nodes in the list nodesToCollapse to the first node in the list.
 
template<class ADJ_ENTRY_LIST >
void sort (node v, const ADJ_ENTRY_LIST &newOrder)
 Sorts the adjacency list of node v according to newOrder.
 
void reverseAdjEdges (node v)
 Reverses the adjacency list of v.
 
void moveAdj (adjEntry adjMove, Direction dir, adjEntry adjPos)
 Moves adjacency entry adjMove before or after adjPos.
 
void moveAdjAfter (adjEntry adjMove, adjEntry adjAfter)
 Moves adjacency entry adjMove after adjAfter.
 
void moveAdjBefore (adjEntry adjMove, adjEntry adjBefore)
 Moves adjacency entry adjMove before adjBefore.
 
void reverseAdjEdges ()
 Reverses all adjacency lists.
 
void swapAdjEdges (adjEntry adj1, adjEntry adj2)
 Exchanges two entries in an adjacency list.
 
int genus () const
 Returns the genus of the graph's embedding.
 
bool representsCombEmbedding () const
 Returns true iff the graph represents a combinatorial embedding.
 
ListIterator< NodeArrayBase * > registerArray (NodeArrayBase *pNodeArray) const
 Registers a node array.
 
ListIterator< EdgeArrayBase * > registerArray (EdgeArrayBase *pEdgeArray) const
 Registers an edge array.
 
ListIterator< AdjEntryArrayBase * > registerArray (AdjEntryArrayBase *pAdjArray) const
 Registers an adjEntry array.
 
ListIterator< GraphObserver * > registerStructure (GraphObserver *pStructure) const
 Registers a graph observer (e.g. a ClusterGraph).
 
void unregisterArray (ListIterator< NodeArrayBase * > it) const
 Unregisters a node array.
 
void unregisterArray (ListIterator< EdgeArrayBase * > it) const
 Unregisters an edge array.
 
void unregisterArray (ListIterator< AdjEntryArrayBase * > it) const
 Unregisters an adjEntry array.
 
void unregisterStructure (ListIterator< GraphObserver * > it) const
 Unregisters a graph observer.
 
template<class ArrayBase >
void moveRegisterArray (ListIterator< ArrayBase * > it, ArrayBase *pArray) const
 Move the registration it of an graph element array to pArray (used with move semantics for graph element arrays).
 
void resetEdgeIdCount (int maxId)
 Resets the edge id count to maxId.
 
Graphoperator= (const Graph &G)
 Assignment operator.
 

Private Member Functions

bool checkSweepLine (const List< Interval > &sweepLine) const
 
virtual string getLengthString (edge e) const override
 
void resetGenMergerLengths (const PlanRep &PG, adjEntry adjFirst)
 
void setBasicArcsZeroLength (const PlanRep &PG)
 
void setBoundaryCosts (adjEntry cornerDir, adjEntry cornerOppDir)
 

Private Attributes

NodeArray< ATYPEm_extraOfs
 offset of extra node to its rep, should change this
 
EdgeArray< ATYPEm_length
 length of an edge
 
ATYPE m_sep
 

Cost settings

int m_vertexArcCost
 get small cages
 
int m_bungeeCost
 middle position distance penalty
 
int m_MedianArcCost
 draw merger gen at median of incoming generalizations
 
int m_doubleBendCost
 try to minimize double bends
 
bool m_genToMedian
 draw outgoing generalization from merger above ingoing gen.
 
bool m_centerPriority
 should centering be more expensive than generalizations
 
static const int c_vertexArcFactor = 20
 
static const int c_bungeeFactor = 20
 
static const int c_doubleBendFactor
 double bends cost factor*vertexArcCost
 
static const int c_MedianFactor = 10 * c_doubleBendFactor
 median arcs cost factor*vertexArcCost
 

Additional Inherited Members

- Protected Types inherited from ogdf::Graph
enum class  EdgeType { association = 0 , generalization = 1 , dependency = 2 }
 The type of edges (only used in derived classes). More...
 
enum class  NodeType { vertex = 0 , dummy = 1 , generalizationMerger = 2 , generalizationExpander = 3 , highDegreeExpander = 4 , lowDegreeExpander = 5 , associationClass = 6 }
 The type of nodes. More...
 
using node_iterator = internal::GraphIterator< node >
 Provides a bidirectional iterator to a node in a graph.
 
using edge_iterator = internal::GraphIterator< edge >
 Provides a bidirectional iterator to an edge in a graph.
 
using adjEntry_iterator = internal::GraphIterator< adjEntry >
 Provides a bidirectional iterator to an entry in an adjacency list.
 
- Protected Attributes inherited from ogdf::CompactionConstraintGraphBase
EdgeArray< boolm_alignmentArc
 Basic arcs that have to be short for alignment (node to gen expander)
 
int m_edgeCost [2]
 
NodeArray< edgem_pathToEdge
 save the (single!) edge (segment) for a pathNode
 
EdgeArray< boolm_verticalArc
 arc corresponding to such an edge
 
EdgeArray< boolm_verticalGen
 generalization that runs vertical relative to hierarchy
 
- Protected Attributes inherited from ogdf::CommonCompactionConstraintGraphBase
OrthoDir m_arcDir
 
EdgeArray< intm_border
 only used for cage precompaction in flowcompaction computecoords
 
EdgeArray< intm_cost
 cost of an edge
 
EdgeArray< edgem_edgeToBasicArc
 basic arc representing an edge in PG
 
NodeArray< boolm_extraNode
 Node does not represent drawing node as we dont have positions we save a drawing representant and an offset.
 
NodeArray< nodem_extraRep
 existing representant of extranodes position anchor
 
OrthoDir m_oppArcDir
 
NodeArray< edgem_originalEdge
 save edge for the basic arcs
 
NodeArray< SListPure< node > > m_path
 list of nodes contained in a segment
 
NodeArray< nodem_pathNode
 segment containing a node in PG
 
const OrthoRepm_pOR
 
const PlanRepm_pPR
 
SList< nodem_sinks
 
SList< nodem_sources
 
EdgeArray< ConstraintEdgeTypem_type
 constraint type for each edge
 
- Protected Attributes inherited from ogdf::Graph
internal::GraphObjectContainer< NodeElementnodes
 The container containing all node objects.
 
internal::GraphObjectContainer< EdgeElementedges
 The container containing all edge objects.
 

Detailed Description

template<class ATYPE>
class ogdf::CompactionConstraintGraph< ATYPE >

Represents a constraint graph used for compaction.

  • Vertices: maximally connected horiz. (resp. vert.) paths.
  • Basic arcs: paths connected by edges of opposite direction.
  • Vertex size arcs: care for minimum size of cages.
  • Visibility arcs: paths seeing each other.

Each edge has a (minimum) length and cost.

Definition at line 106 of file CompactionConstraintGraph.h.

Constructor & Destructor Documentation

◆ CompactionConstraintGraph()

template<class ATYPE >
ogdf::CompactionConstraintGraph< ATYPE >::CompactionConstraintGraph ( const OrthoRep OR,
const PlanRep PG,
OrthoDir  arcDir,
ATYPE  sep,
int  costGen = 1,
int  costAssoc = 1,
bool  align = false 
)
inline

Construction.

Definition at line 109 of file CompactionConstraintGraph.h.

Member Function Documentation

◆ areMulti()

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::areMulti ( edge  e1,
edge  e2 
) const

Return PG result for flowcompaction.

◆ centerPriority() [1/2]

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::centerPriority ( )
inline

Gets centerPriority (center single edges?)

Definition at line 134 of file CompactionConstraintGraph.h.

◆ centerPriority() [2/2]

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::centerPriority ( bool  b)
inline

Sets centerPriority (center single edges?)

Definition at line 137 of file CompactionConstraintGraph.h.

◆ checkSweepLine()

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::checkSweepLine ( const List< Interval > &  sweepLine) const
private

Definition at line 848 of file CompactionConstraintGraph.h.

◆ computeTotalCosts()

template<class ATYPE >
ATYPE ogdf::CompactionConstraintGraph< ATYPE >::computeTotalCosts ( const NodeArray< ATYPE > &  pos) const

Computes the total costs for coordintes given by pos, i.e., the sum of the weighted lengths of edges in the constraint graph.

Definition at line 834 of file CompactionConstraintGraph.h.

◆ extraOfs()

template<class ATYPE >
ATYPE ogdf::CompactionConstraintGraph< ATYPE >::extraOfs ( node  v) const
inline

Returns extraNode position, change to save mem, only need some entries.

Definition at line 131 of file CompactionConstraintGraph.h.

◆ getLengthString()

template<class ATYPE >
virtual string ogdf::CompactionConstraintGraph< ATYPE >::getLengthString ( edge  e) const
inlineoverrideprivatevirtual

◆ initializeCosts()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::initializeCosts ( )
inlineprotected

Definition at line 278 of file CompactionConstraintGraph.h.

◆ insertVertexSizeArcs() [1/2]

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::insertVertexSizeArcs ( const PlanRep PG,
const NodeArray< ATYPE > &  sizeOrig,
const MinimumEdgeDistances< ATYPE > &  minDist 
)

Inserts arcs for respecting sizes of vertices and achieving desired placement of generalizations if vertices are represented by tight cages. Also corrects length of arcs belonging to cages which are adjacent to a corner; takes special distances between edge segments attached at a vertex (delta's and epsilon's) into account.

Definition at line 547 of file CompactionConstraintGraph.h.

◆ insertVertexSizeArcs() [2/2]

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::insertVertexSizeArcs ( const PlanRep PG,
const NodeArray< ATYPE > &  sizeOrig,
const RoutingChannel< ATYPE > &  rc 
)

Inserts arcs for respecting sizes of vertices and achieving desired placement of generalizations if vertices are represented by variable cages; also corrects length of arcs belonging to cages which are adjacent to a corner; takes routing channels into account.

Definition at line 414 of file CompactionConstraintGraph.h.

◆ insertVisibilityArcs() [1/2]

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::insertVisibilityArcs ( const PlanRep PG,
const NodeArray< ATYPE > &  posDir,
const NodeArray< ATYPE > &  posOppDir 
)

Inserts arcs connecting segments which can see each other in a drawing of the associated planarized representation PG which is given by posDir and posOppDir.

Parameters
PGassociated planarized representation
posDirposition of segment containing vertex in PG
posOppDirposition of orthogonal segment containing vertex in PG

Definition at line 875 of file CompactionConstraintGraph.h.

◆ insertVisibilityArcs() [2/2]

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::insertVisibilityArcs ( const PlanRep PG,
const NodeArray< ATYPE > &  posDir,
const NodeArray< ATYPE > &  posOrthDir,
const MinimumEdgeDistances< ATYPE > &  minDist 
)

Definition at line 899 of file CompactionConstraintGraph.h.

◆ isFeasible()

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::isFeasible ( const NodeArray< ATYPE > &  pos)

Performs feasibility test for position assignment pos, i.e., checks if the segment positions given by pos fulfill the constraints in the compaction constraint graph (for debuging only)

Definition at line 1342 of file CompactionConstraintGraph.h.

◆ length()

template<class ATYPE >
ATYPE ogdf::CompactionConstraintGraph< ATYPE >::length ( edge  e) const
inline

Returns length of edge e.

Precondition
e is an edge in the constraint graph

Definition at line 128 of file CompactionConstraintGraph.h.

◆ resetGenMergerLengths()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::resetGenMergerLengths ( const PlanRep PG,
adjEntry  adjFirst 
)
private

Definition at line 312 of file CompactionConstraintGraph.h.

◆ separation()

template<class ATYPE >
ATYPE ogdf::CompactionConstraintGraph< ATYPE >::separation ( ) const
inline

Returns the separation value.

Definition at line 180 of file CompactionConstraintGraph.h.

◆ setBasicArcsZeroLength()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::setBasicArcsZeroLength ( const PlanRep PG)
private

Definition at line 521 of file CompactionConstraintGraph.h.

◆ setBoundaryCosts()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::setBoundaryCosts ( adjEntry  cornerDir,
adjEntry  cornerOppDir 
)
private

Definition at line 380 of file CompactionConstraintGraph.h.

◆ setExtra()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::setExtra ( node  v,
node  rep,
ATYPE  ofs 
)
inlineprotected

Node v has no representation in drawing, only internal representation.

Definition at line 272 of file CompactionConstraintGraph.h.

◆ setMinimumSeparation()

template<class ATYPE >
void ogdf::CompactionConstraintGraph< ATYPE >::setMinimumSeparation ( const PlanRep PG,
const NodeArray< int > &  coord,
const MinimumEdgeDistances< ATYPE > &  minDist 
)

Sets min separation for multi edge original.

Member Data Documentation

◆ c_bungeeFactor

template<class ATYPE >
const int ogdf::CompactionConstraintGraph< ATYPE >::c_bungeeFactor = 20
staticprivate

Definition at line 264 of file CompactionConstraintGraph.h.

◆ c_doubleBendFactor

template<class ATYPE >
const int ogdf::CompactionConstraintGraph< ATYPE >::c_doubleBendFactor
staticprivate
Initial value:
=
20

double bends cost factor*vertexArcCost

Definition at line 265 of file CompactionConstraintGraph.h.

◆ c_MedianFactor

template<class ATYPE >
const int ogdf::CompactionConstraintGraph< ATYPE >::c_MedianFactor = 10 * c_doubleBendFactor
staticprivate

median arcs cost factor*vertexArcCost

Definition at line 266 of file CompactionConstraintGraph.h.

◆ c_vertexArcFactor

template<class ATYPE >
const int ogdf::CompactionConstraintGraph< ATYPE >::c_vertexArcFactor = 20
staticprivate

Definition at line 263 of file CompactionConstraintGraph.h.

◆ m_bungeeCost

template<class ATYPE >
int ogdf::CompactionConstraintGraph< ATYPE >::m_bungeeCost
private

middle position distance penalty

Definition at line 254 of file CompactionConstraintGraph.h.

◆ m_centerPriority

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::m_centerPriority
private

should centering be more expensive than generalizations

Definition at line 260 of file CompactionConstraintGraph.h.

◆ m_doubleBendCost

template<class ATYPE >
int ogdf::CompactionConstraintGraph< ATYPE >::m_doubleBendCost
private

try to minimize double bends

Definition at line 256 of file CompactionConstraintGraph.h.

◆ m_extraOfs

template<class ATYPE >
NodeArray<ATYPE> ogdf::CompactionConstraintGraph< ATYPE >::m_extraOfs
private

offset of extra node to its rep, should change this

Definition at line 245 of file CompactionConstraintGraph.h.

◆ m_genToMedian

template<class ATYPE >
bool ogdf::CompactionConstraintGraph< ATYPE >::m_genToMedian
private

draw outgoing generalization from merger above ingoing gen.

Definition at line 257 of file CompactionConstraintGraph.h.

◆ m_length

template<class ATYPE >
EdgeArray<ATYPE> ogdf::CompactionConstraintGraph< ATYPE >::m_length
private

length of an edge

Definition at line 243 of file CompactionConstraintGraph.h.

◆ m_MedianArcCost

template<class ATYPE >
int ogdf::CompactionConstraintGraph< ATYPE >::m_MedianArcCost
private

draw merger gen at median of incoming generalizations

Definition at line 255 of file CompactionConstraintGraph.h.

◆ m_sep

template<class ATYPE >
ATYPE ogdf::CompactionConstraintGraph< ATYPE >::m_sep
private

Definition at line 241 of file CompactionConstraintGraph.h.

◆ m_vertexArcCost

template<class ATYPE >
int ogdf::CompactionConstraintGraph< ATYPE >::m_vertexArcCost
private

get small cages

Definition at line 253 of file CompactionConstraintGraph.h.


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