Fréchet View  1.6.0
A Tool for Exploring Fréchet Distance Algorithms
frechet::poly::Vertex_base< TDS > Class Template Reference

Detailed Description

template<class TDS = DummyTDS>
class frechet::poly::Vertex_base< TDS >

base class for vertexes in a Triangulation Data Structure.

Vertexes are derived from TDS vertex class, but carry additional information, namely

  • a location in the plane
  • references into a polygon chain
  • aux. data for the PolygonShortestPaths algorithm, like free-space intervals
Template Parameters
TDSa Triangulation Data Structure
Author
Peter Schäfer

Definition at line 40 of file triangulation.h.

#include <triangulation.h>

Inherits Point, and Triangulation_ds_vertex_base_2< TDS >.

Classes

struct  Rebind_TDS
 template re-bind to resolve cyclic dependcies More...
 

Public Member Functions

 Vertex_base ()
 empty constructore; creates an invalid vertex More...
 
 Vertex_base (const Point &p, int i)
 constructor from polygon vertex More...
 
 Vertex_base (const Point &p, int i, double offset)
 constructor from polygon edge More...
 
 ~Vertex_base ()
 destructor (empty, actually) More...
 
void setPoint (const Point &p)
 assign a point in the plane More...
 
void clearTarget ()
 reset target info (used by PolygonShortestPaths algorithm) More...
 
Vertex_basesetData (const Vertex_base &that)
 copy properties of derived class (anything but base class info) More...
 
Vertex_basesetData (const Point &p, int pindex, int dindex, double offset)
 set properties of derived class (anything but base class info) More...
 
QLineF treeEdge () const
 
bool assertEquals (const Vertex_base &that)
 debug assertion More...
 

Public Attributes

int pindex
 Index of polygon vertex (if this object refers to a polygon vertex; invalid for extra points) More...
 
int dindex
 Index of diagonal vertex (points into CurveData::d_points); invalid for other points. More...
 
double offset
 
Aux. data used by PolygonShortestPaths

The algorithm for shortest-paths stores extra info at the triangulation vertexes for:

  • creating a shortes path tree
  • creating a free-space diagram
Vertex_baseprev
 
const frechet::reach::Placementtarget
 
Interval L
 Free-Space intervals L,B,R (usually part of a FreeSpace object) L,B,R is calculated from [Guibas-start diagonal d] x [prev..this]. More...
 
Interval B
 
Interval R
 
Interval LR
 Reachable Free-Space intervals LR,BR,RR (usually part of an FSPath object) More...
 
Interval BR
 
Interval RR
 

Constructor & Destructor Documentation

◆ Vertex_base() [1/3]

template<class TDS >
Vertex_base::Vertex_base ( )

empty constructore; creates an invalid vertex

Definition at line 584 of file triangulation.cpp.

◆ Vertex_base() [2/3]

template<class TDS = DummyTDS>
frechet::poly::Vertex_base< TDS >::Vertex_base ( const Point p,
int  i 
)

constructor from polygon vertex

Parameters
pone of the polygon's vertexes
iindex of polygon vertex

◆ Vertex_base() [3/3]

template<class TDS = DummyTDS>
frechet::poly::Vertex_base< TDS >::Vertex_base ( const Point p,
int  i,
double  offset 
)

constructor from polygon edge

Parameters
pa point on the edge of a polygon curve
iindex of neighbor polygon vertex
offsetoffset into polygon curve

◆ ~Vertex_base()

template<class TDS >
Vertex_base::~Vertex_base ( )

destructor (empty, actually)

Definition at line 600 of file triangulation.cpp.

Member Function Documentation

◆ assertEquals()

template<typename TDS >
bool Vertex_base::assertEquals ( const Vertex_base< TDS > &  that)

debug assertion

Parameters
thatobjet to compare with
Returns
true if both vertexes are considered equal

Definition at line 684 of file triangulation.cpp.

◆ clearTarget()

template<class TDS = DummyTDS>
void frechet::poly::Vertex_base< TDS >::clearTarget ( )
inline

reset target info (used by PolygonShortestPaths algorithm)

Definition at line 81 of file triangulation.h.

◆ setData() [1/2]

template<class TDS >
Vertex_base< TDS > & frechet::poly::Vertex_base< TDS >::setData ( const Vertex_base< TDS > &  that)

copy properties of derived class (anything but base class info)

Parameters
thatobject to copy from
Returns
reference to this, after assignment

Definition at line 606 of file triangulation.h.

◆ setData() [2/2]

template<class TDS >
Vertex_base< TDS > & frechet::poly::Vertex_base< TDS >::setData ( const Point p,
int  pindex,
int  dindex,
double  offset 
)

set properties of derived class (anything but base class info)

Parameters
pa point in the plane
pindexindex of polygon vertex (optional)
dindexindex of diagonal vertex (optional)
offsetoffset into polygon curve
Returns
reference to this, after assignment

Definition at line 626 of file triangulation.h.

◆ setPoint()

template<class TDS >
void frechet::poly::Vertex_base< TDS >::setPoint ( const Point p)

assign a point in the plane

Parameters
pa point

Definition at line 601 of file triangulation.h.

◆ treeEdge()

template<class TDS = DummyTDS>
QLineF frechet::poly::Vertex_base< TDS >::treeEdge ( ) const
inline
Returns
edge in shortest-path tree

Definition at line 142 of file triangulation.h.

Member Data Documentation

◆ B

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::B

Definition at line 129 of file triangulation.h.

◆ BR

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::BR

Definition at line 134 of file triangulation.h.

◆ dindex

template<class TDS = DummyTDS>
int frechet::poly::Vertex_base< TDS >::dindex

Index of diagonal vertex (points into CurveData::d_points); invalid for other points.

Definition at line 102 of file triangulation.h.

◆ L

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::L

Free-Space intervals L,B,R (usually part of a FreeSpace object) L,B,R is calculated from [Guibas-start diagonal d] x [prev..this].

Definition at line 129 of file triangulation.h.

◆ LR

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::LR

Reachable Free-Space intervals LR,BR,RR (usually part of an FSPath object)

Definition at line 134 of file triangulation.h.

◆ offset

template<class TDS = DummyTDS>
double frechet::poly::Vertex_base< TDS >::offset

offset on polygon edge. For polygon vertexes, there is offset==pindex for intermediate points on the edges, there is i <= offset <= i+1

Definition at line 105 of file triangulation.h.

◆ pindex

template<class TDS = DummyTDS>
int frechet::poly::Vertex_base< TDS >::pindex

Index of polygon vertex (if this object refers to a polygon vertex; invalid for extra points)

Definition at line 100 of file triangulation.h.

◆ prev

template<class TDS = DummyTDS>
Vertex_base* frechet::poly::Vertex_base< TDS >::prev

backlink for PolygonShortestPaths algorithm. (prev,this) describes an edge in the shortest-paths tree

Definition at line 119 of file triangulation.h.

◆ R

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::R

Definition at line 129 of file triangulation.h.

◆ RR

template<class TDS = DummyTDS>
Interval frechet::poly::Vertex_base< TDS >::RR

Definition at line 134 of file triangulation.h.

◆ target

template<class TDS = DummyTDS>
const frechet::reach::Placement* frechet::poly::Vertex_base< TDS >::target
  • for every target point of a placement:
  • for every point, when it becomes part of a shortest path:

Definition at line 124 of file triangulation.h.


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