Open
Graph Drawing
Framework

 v.2010.10
 

Public Member Functions | Private Member Functions | Private Attributes

ogdf::EdgeComparer Class Reference

The EdgeComparer compares adjacency entries on base of the position of the nodes given by an Attributed Graph's layout information. More...

#include <ogdf/basic/EdgeComparer.h>

Inheritance diagram for ogdf::EdgeComparer:
ogdf::VComparer< adjEntry >

List of all members.

Public Member Functions

 EdgeComparer (const GraphAttributes &AG, const PlanRep &PR)
 EdgeComparer (const GraphAttributes &AG)
 compare the edges directly in AG
int compare (const adjEntry &e1, const adjEntry &e2) const
 Compares x and y and returns the result as an integer.
bool before (const DPoint u, const DPoint v, const DPoint w) const
 check if vector u->v lies within 180degree halfcircle before vector u->w in clockwise order (i.e. twelve o'clock lies before 1)

Private Member Functions

int orientation (const DPoint u, const DPoint v, const DPoint w) const
 returns a value > 0, if vector uv lies "before" vector uw
int compareVectors (const double &x1, const double &y1, const double &x2, const double &y2) const
 compares by angle relative to x-axis
double angle (DPoint p, DPoint q, DPoint r) const
 computes angle between vectors p->q, p->r
int signOf (const double &x) const

Private Attributes

const GraphAttributesm_AG
const PlanRepm_PR

Detailed Description

The EdgeComparer compares adjacency entries on base of the position of the nodes given by an Attributed Graph's layout information.

helper function for ordering / sorting assumes that PG is a planrep on original AG and that PG is not normalized, i.e., if there are bends in AG, they do not have a counterpart in PG (all nodes in PG have an original) temporary: we assume that we have two adjentries at a common point, so we leave the check for now if they meet and at which point

Todo:
check if sorting order fits adjacency list

Definition at line 82 of file EdgeComparer.h.


Constructor & Destructor Documentation

ogdf::EdgeComparer::EdgeComparer ( const GraphAttributes AG,
const PlanRep PR 
) [inline]

Definition at line 72 of file EdgeComparer.h.

ogdf::EdgeComparer::EdgeComparer ( const GraphAttributes AG  )  [inline]

compare the edges directly in AG

Definition at line 77 of file EdgeComparer.h.


Member Function Documentation

double ogdf::EdgeComparer::angle ( DPoint  p,
DPoint  q,
DPoint  r 
) const [private]

computes angle between vectors p->q, p->r

bool ogdf::EdgeComparer::before ( const DPoint  u,
const DPoint  v,
const DPoint  w 
) const

check if vector u->v lies within 180degree halfcircle before vector u->w in clockwise order (i.e. twelve o'clock lies before 1)

int ogdf::EdgeComparer::compare ( const adjEntry x,
const adjEntry y 
) const [virtual]

Compares x and y and returns the result as an integer.

The returns value is

  • < 0 iff x < y,
  • = 0 iff x = y,
  • > 0 iff x > y

Implements ogdf::VComparer< adjEntry >.

int ogdf::EdgeComparer::compareVectors ( const double &  x1,
const double &  y1,
const double &  x2,
const double &  y2 
) const [private]

compares by angle relative to x-axis

int ogdf::EdgeComparer::orientation ( const DPoint  u,
const DPoint  v,
const DPoint  w 
) const [private]

returns a value > 0, if vector uv lies "before" vector uw

int ogdf::EdgeComparer::signOf ( const double &  x  )  const [inline, private]

Definition at line 99 of file EdgeComparer.h.


Member Data Documentation

Definition at line 107 of file EdgeComparer.h.

Definition at line 108 of file EdgeComparer.h.


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