Manipulating node incidence orders


Modules

 Series-parallel graphs

Functions

void abstractMixedGraph::RandomizeIncidenceOrder () throw (ERRejected)
void abstractMixedGraph::IncidenceOrderFromDrawing () throw (ERRejected)
bool abstractMixedGraph::PlanarizeIncidenceOrder (TMethPlanarity method=PLANAR_DEFAULT) throw (ERRejected)
void sparseRepresentation::SetRight (TArc a1, TArc a2, TArc a3=NoArc) throw (ERRange,ERRejected)
void sparseRepresentation::SetFirst (TNode v, TArc a) throw (ERRange,ERRejected)
void sparseRepresentation::RouteArc (TArc a, TNode u, TNode v) throw (ERRange,ERRejected)
void sparseRepresentation::ReorderIncidences (const TArc *predArc, bool nodeOriented=false) throw ()

Function Documentation

void IncidenceOrderFromDrawing  )  throw (ERRejected) [inherited]
 

Synchronize node incidence order with drawing.

Reorder the node incidences according to the current 2D drawing. This operation applies to sparse represented graphs only.

bool PlanarizeIncidenceOrder TMethPlanarity  method = PLANAR_DEFAULT  )  throw (ERRejected) [inherited]
 

Compute a planar representation.

Parameters:
method A TMethPlanarity value specifying the applied method
Return values:
true The graph is planar
This calls PlanarityMethod() and, if the graph turns out to be planar, ReorderIncidences() which orders the node incidences according to a potential plane drawing. This operation applies to sparse represented graphs only.

void RandomizeIncidenceOrder  )  throw (ERRejected) [inherited]
 

Produce a random incidence order.

This operation applies to sparse represented graphs only.

void ReorderIncidences const TArc predArc,
bool  nodeOriented = false
throw () [inherited]
 

General manipulation of the node incidence order.

Parameters:
predArc For every arc, the arc which will occur left hand in the resulting incidence order
nodeOriented If true, for every arc a, both a and predArc[a] share the start point, and predArc[a] is considered to occur counter-clockwise of a. Otherwise, the end node of predArc[a] is the start node of a, and predArc[a] is is the predecessor of a when traveling around a face in an imagined plane straight line drawing
Reorder all node incidences as specified in predArc[]. This operation applies to sparse represented graphs only. The operation is virtually synchronous for all nodes.

void RouteArc TArc  a,
TNode  u,
TNode  v
throw (ERRange,ERRejected) [inherited]
 

Adjust the end nodes of a given arc.

Parameters:
a An arc index ranged [0,1,..,2*mAct-1]
u A node index ranged [0,1,..,nAct-1]
v A node index ranged [0,1,..,nAct-1]
This calls SetRouting() and updates / invalidates some data structures of the assiciated graph object.

void SetFirst TNode  v,
TArc  a
throw (ERRange,ERRejected) [inherited]
 

Set the first entry of a circular incidence list.

Parameters:
v A node index ranged [0,1,..,nAct-1]
a An arc index ranged [0,1,..,2*mAct-1]

void SetRight TArc  a1,
TArc  a2,
TArc  a3 = NoArc
throw (ERRange,ERRejected) [inherited]
 

Move an arc in the incidence list of its start node.

Parameters:
a1 An arc index ranged [0,1,..,2*mAct-1]
a2 An arc index ranged [0,1,..,2*mAct-1]
a3 An optional arc index ranged [0,1,..,2*mAct-1]
This makes a2 the successor of a1 in the start nodes' incidence list and makes the original successor of a1 the new successor of a3. If only two arguments are specified, a2 == a3 is assumed. Provided that the previous right-hand incidence order is .., a1, .., a2, .., a3, .., a circular incidence list is maintained.