#include <ogdf/orthogonal/EdgeRouter.h>
Public Member Functions | |
| EdgeRouter () | |
| EdgeRouter (PlanRep &pru, OrthoRep &H, GridLayoutMapped &L, CombinatorialEmbedding &E, RoutingChannel< int > &rou, MinimumEdgeDistances< int > &med, NodeArray< int > &nodewidth, NodeArray< int > &nodeheight) | |
| virtual | ~EdgeRouter () |
| void | init (PlanRep &pru, RoutingChannel< int > &rou, bool align=false) |
| void | setDistances () |
| sets the computed distances in structure MinimumEdgeDistance m_med | |
| void | call () |
| places nodes in cages and routes incident edges | |
| void | call (PlanRep &pru, OrthoRep &H, GridLayoutMapped &L, CombinatorialEmbedding &E, RoutingChannel< int > &rou, MinimumEdgeDistances< int > &med, NodeArray< int > &nodewidth, NodeArray< int > &nodeheight, bool align=false) |
| places nodes in cages and routes incident edges | |
| void | place (node v) |
| applies precomputed placement | |
| void | compute_place (node v, NodeInfo &inf) |
| computes placement | |
| void | compute_routing (node v) |
| computes routing after compute_place | |
| void | compute_glue_points_y (node v) |
| compute glue points positions | |
| void | compute_gen_glue_points_y (node v) |
| compute glue points positions | |
| void | compute_glue_points_x (node &v) |
| compute glue points positions | |
| void | compute_gen_glue_points_x (node v) |
| compute glue points positions | |
| void | initialize_node_info (node v, int sep) |
| sets values derivable from input | |
| int | cp_x (adjEntry ae) |
| connection point (cage border) coord of source | |
| int | cp_y (adjEntry ae) |
| connection point (cage border) coord of source | |
| int | gp_x (adjEntry ae) |
| glue point (node border) | |
| int | gp_y (adjEntry ae) |
| glue point (node border) | |
| bend_type | abendType (adjEntry ae) |
| void | addbends (BendString &bs, const char *s2) |
| edge | addRightBend (edge e) |
| edge | addLeftBend (edge e) |
| adjEntry | outEntry (NodeInfo &inf, OrthoDir d, int pos) |
| adjEntries for edges in inLists | |
| adjEntry | inEntry (NodeInfo &inf, OrthoDir d, int pos) |
| adjEntries for edges in inLists | |
| void | set_position (node v, int x=0, int y=0) |
| sets position for node v in layout to value x,y, invoked to have central control over change | |
| void | fix_position (node v, int x=0, int y=0) |
| same as set but updates m_fixed, coordinates cant be changed afterwards | |
| void | multiDelta () |
| for all multiple edges, set the delta value on both sides to minimum if not m_minDelta | |
| void | align (bool b) |
| set alignment option: place nodes in cage at outgoing generalization | |
Private Member Functions | |
| void | unsplit (edge e1, edge e2) |
| void | set_corners (node v) |
| set coordinates of cage corners after placement | |
| int | alpha_move (OrthoDir s_to, OrthoDir s_from, node v) |
| computes the alpha value described in the paper | |
| node | oppositeNode (adjEntry ae) |
| helper for oppositeExpander | |
| bool | oppositeExpander (adjEntry ae) |
| check if the target node of the outgoing adjEntry still is a expander | |
| int | beta_move (OrthoDir s_from, OrthoDir s_to, int move_num, node v) |
| computes the beta value described in the paper | |
| int | compute_move (OrthoDir s_from, OrthoDir s_to, int &kflip, node v) |
| compute the maximum number of moveable edges | |
Private Attributes | |
| PlanRep * | m_prup |
| GridLayoutMapped * | m_layoutp |
| OrthoRep * | m_orp |
| CombinatorialEmbedding * | m_comb |
| RoutingChannel< int > * | m_rc |
| MinimumEdgeDistances< int > * | m_med |
| NodeArray< int > * | m_nodewidth |
| NodeArray< int > * | m_nodeheight |
| NodeArray< NodeInfo > | infos |
| holds the cage and placement information | |
| int | m_sep |
| minimum separation | |
| int | m_overh |
| minimum overhang | |
| double | Cconst |
| relative sep to overhang / delta to eps | |
| bool | m_minDelta |
| set minimum delta values for flip decision and adjust distances correspondingly | |
| NodeArray< int > | m_newx |
| NodeArray< int > | m_newy |
| node array saves info about changed position, no further change is allowed | |
| NodeArray< bool > | m_fixed |
| EdgeArray< int > | lowe |
| EdgeArray< int > | uppe |
| EdgeArray< int > | lefte |
| EdgeArray< int > | righte |
| max box borders for bendfree edges | |
| AdjEntryArray< int > | alowe |
| AdjEntryArray< int > | auppe |
| AdjEntryArray< int > | alefte |
| AdjEntryArray< int > | arighte |
| AdjEntryArray< int > | m_agp_x |
| AdjEntryArray< int > | m_agp_y |
| because edges can connect two replacement cages | |
| AdjEntryArray< node > | m_cage_point |
| newly introduced bends destroy edge to point connection | |
| AdjEntryArray< int > | m_acp_x |
| AdjEntryArray< int > | m_acp_y |
| edge connection point coordinates before treatment | |
| AdjEntryArray< bend_type > | m_abends |
| bends | |
| NodeArray< bend_type > | m_oppositeBendType |
| keep the information about the type of bend inserted at one end of an (originally unbend) edge, so that we can check possible bendsaving | |
| NodeArray< process_type > | m_processStatus |
| keep information about already processed Nodes | |
| NodeArray< bool > | m_mergerSon |
| is part of merger son cage | |
| NodeArray< OrthoDir > | m_mergeDir |
| direction of adjacent (to) merger edges | |
| bool | m_align |
Places node boxes in replacement areas of orthogonal drawing step and route edges to minimize bends
Definition at line 103 of file EdgeRouter.h.
| ogdf::EdgeRouter::EdgeRouter | ( | ) | [inline] |
Definition at line 107 of file EdgeRouter.h.
| ogdf::EdgeRouter::EdgeRouter | ( | PlanRep & | pru, | |
| OrthoRep & | H, | |||
| GridLayoutMapped & | L, | |||
| CombinatorialEmbedding & | E, | |||
| RoutingChannel< int > & | rou, | |||
| MinimumEdgeDistances< int > & | med, | |||
| NodeArray< int > & | nodewidth, | |||
| NodeArray< int > & | nodeheight | |||
| ) |
| virtual ogdf::EdgeRouter::~EdgeRouter | ( | ) | [inline, virtual] |
Definition at line 119 of file EdgeRouter.h.
Definition at line 174 of file EdgeRouter.h.
| void ogdf::EdgeRouter::addbends | ( | BendString & | bs, | |
| const char * | s2 | |||
| ) |
| void ogdf::EdgeRouter::align | ( | bool | b | ) | [inline] |
set alignment option: place nodes in cage at outgoing generalization
postprocessing function, hmm maybe preprocessing
Definition at line 214 of file EdgeRouter.h.
computes the alpha value described in the paper
computes the beta value described in the paper
number of additional bend free edges on side s_from if move_num edges are moved from side s_from to s_to
| void ogdf::EdgeRouter::call | ( | ) |
places nodes in cages and routes incident edges
| void ogdf::EdgeRouter::call | ( | PlanRep & | pru, | |
| OrthoRep & | H, | |||
| GridLayoutMapped & | L, | |||
| CombinatorialEmbedding & | E, | |||
| RoutingChannel< int > & | rou, | |||
| MinimumEdgeDistances< int > & | med, | |||
| NodeArray< int > & | nodewidth, | |||
| NodeArray< int > & | nodeheight, | |||
| bool | align = false | |||
| ) |
places nodes in cages and routes incident edges
| void ogdf::EdgeRouter::compute_gen_glue_points_x | ( | node | v | ) |
compute glue points positions
| void ogdf::EdgeRouter::compute_gen_glue_points_y | ( | node | v | ) |
compute glue points positions
| void ogdf::EdgeRouter::compute_glue_points_x | ( | node & | v | ) |
compute glue points positions
| void ogdf::EdgeRouter::compute_glue_points_y | ( | node | v | ) |
compute glue points positions
| int ogdf::EdgeRouter::compute_move | ( | OrthoDir | s_from, | |
| OrthoDir | s_to, | |||
| int & | kflip, | |||
| node | v | |||
| ) | [private] |
compute the maximum number of moveable edges
dependant on space on available edges, return number of saved bends
| void ogdf::EdgeRouter::compute_routing | ( | node | v | ) |
computes routing after compute_place
| int ogdf::EdgeRouter::cp_x | ( | adjEntry | ae | ) | [inline] |
connection point (cage border) coord of source
Definition at line 169 of file EdgeRouter.h.
| int ogdf::EdgeRouter::cp_y | ( | adjEntry | ae | ) | [inline] |
connection point (cage border) coord of source
Definition at line 170 of file EdgeRouter.h.
| void ogdf::EdgeRouter::fix_position | ( | node | v, | |
| int | x = 0, |
|||
| int | y = 0 | |||
| ) |
same as set but updates m_fixed, coordinates cant be changed afterwards
| int ogdf::EdgeRouter::gp_x | ( | adjEntry | ae | ) | [inline] |
glue point (node border)
Definition at line 171 of file EdgeRouter.h.
| int ogdf::EdgeRouter::gp_y | ( | adjEntry | ae | ) | [inline] |
glue point (node border)
Definition at line 172 of file EdgeRouter.h.
adjEntries for edges in inLists
Definition at line 191 of file EdgeRouter.h.
| void ogdf::EdgeRouter::init | ( | PlanRep & | pru, | |
| RoutingChannel< int > & | rou, | |||
| bool | align = false | |||
| ) |
| void ogdf::EdgeRouter::initialize_node_info | ( | node | v, | |
| int | sep | |||
| ) |
sets values derivable from input
| void ogdf::EdgeRouter::multiDelta | ( | ) |
for all multiple edges, set the delta value on both sides to minimum if not m_minDelta
postprocessing function, hmm maybe preprocessing
| bool ogdf::EdgeRouter::oppositeExpander | ( | adjEntry | ae | ) | [inline, private] |
check if the target node of the outgoing adjEntry still is a expander
Definition at line 252 of file EdgeRouter.h.
helper for oppositeExpander
Definition at line 249 of file EdgeRouter.h.
adjEntries for edges in inLists
Definition at line 183 of file EdgeRouter.h.
| void ogdf::EdgeRouter::place | ( | node | v | ) |
applies precomputed placement
| void ogdf::EdgeRouter::set_corners | ( | node | v | ) | [private] |
set coordinates of cage corners after placement
| void ogdf::EdgeRouter::set_position | ( | node | v, | |
| int | x = 0, |
|||
| int | y = 0 | |||
| ) |
sets position for node v in layout to value x,y, invoked to have central control over change
| void ogdf::EdgeRouter::setDistances | ( | ) |
sets the computed distances in structure MinimumEdgeDistance m_med
AdjEntryArray<int> ogdf::EdgeRouter::alefte [private] |
Definition at line 276 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::alowe [private] |
Definition at line 276 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::arighte [private] |
Definition at line 276 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::auppe [private] |
Definition at line 276 of file EdgeRouter.h.
double ogdf::EdgeRouter::Cconst [private] |
relative sep to overhang / delta to eps
Definition at line 235 of file EdgeRouter.h.
NodeArray<NodeInfo> ogdf::EdgeRouter::infos [private] |
holds the cage and placement information
Definition at line 231 of file EdgeRouter.h.
EdgeArray<int> ogdf::EdgeRouter::lefte [private] |
Definition at line 275 of file EdgeRouter.h.
EdgeArray<int> ogdf::EdgeRouter::lowe [private] |
Definition at line 275 of file EdgeRouter.h.
AdjEntryArray<bend_type> ogdf::EdgeRouter::m_abends [private] |
bends
0 = bendfree, 1 = single bend from left to node, 2 = single from right, 3 = int from left, 4 = int from right,...
Definition at line 287 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::m_acp_x [private] |
Definition at line 279 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::m_acp_y [private] |
edge connection point coordinates before treatment
Definition at line 279 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::m_agp_x [private] |
Definition at line 277 of file EdgeRouter.h.
AdjEntryArray<int> ogdf::EdgeRouter::m_agp_y [private] |
because edges can connect two replacement cages
Definition at line 277 of file EdgeRouter.h.
bool ogdf::EdgeRouter::m_align [private] |
Definition at line 298 of file EdgeRouter.h.
AdjEntryArray<node> ogdf::EdgeRouter::m_cage_point [private] |
newly introduced bends destroy edge to point connection
Definition at line 278 of file EdgeRouter.h.
CombinatorialEmbedding* ogdf::EdgeRouter::m_comb [private] |
Definition at line 225 of file EdgeRouter.h.
NodeArray<bool> ogdf::EdgeRouter::m_fixed [private] |
Definition at line 274 of file EdgeRouter.h.
GridLayoutMapped* ogdf::EdgeRouter::m_layoutp [private] |
Definition at line 223 of file EdgeRouter.h.
MinimumEdgeDistances<int>* ogdf::EdgeRouter::m_med [private] |
Definition at line 227 of file EdgeRouter.h.
NodeArray<OrthoDir> ogdf::EdgeRouter::m_mergeDir [private] |
direction of adjacent (to) merger edges
Definition at line 297 of file EdgeRouter.h.
NodeArray<bool> ogdf::EdgeRouter::m_mergerSon [private] |
is part of merger son cage
Definition at line 296 of file EdgeRouter.h.
bool ogdf::EdgeRouter::m_minDelta [private] |
set minimum delta values for flip decision and adjust distances correspondingly
Definition at line 246 of file EdgeRouter.h.
NodeArray<int> ogdf::EdgeRouter::m_newx [private] |
Definition at line 272 of file EdgeRouter.h.
NodeArray<int> ogdf::EdgeRouter::m_newy [private] |
node array saves info about changed position, no further change is allowed
new placement position for original node
Definition at line 272 of file EdgeRouter.h.
NodeArray<int>* ogdf::EdgeRouter::m_nodeheight [private] |
Definition at line 229 of file EdgeRouter.h.
NodeArray<int>* ogdf::EdgeRouter::m_nodewidth [private] |
Definition at line 228 of file EdgeRouter.h.
keep the information about the type of bend inserted at one end of an (originally unbend) edge, so that we can check possible bendsaving
Definition at line 290 of file EdgeRouter.h.
OrthoRep* ogdf::EdgeRouter::m_orp [private] |
Definition at line 224 of file EdgeRouter.h.
int ogdf::EdgeRouter::m_overh [private] |
minimum overhang
Definition at line 234 of file EdgeRouter.h.
keep information about already processed Nodes
Definition at line 293 of file EdgeRouter.h.
PlanRep* ogdf::EdgeRouter::m_prup [private] |
Definition at line 222 of file EdgeRouter.h.
RoutingChannel<int>* ogdf::EdgeRouter::m_rc [private] |
Definition at line 226 of file EdgeRouter.h.
int ogdf::EdgeRouter::m_sep [private] |
minimum separation
Definition at line 233 of file EdgeRouter.h.
EdgeArray<int> ogdf::EdgeRouter::righte [private] |
max box borders for bendfree edges
Definition at line 275 of file EdgeRouter.h.
EdgeArray<int> ogdf::EdgeRouter::uppe [private] |
Definition at line 275 of file EdgeRouter.h.