Horizon
Loading...
Searching...
No Matches
p2t Namespace Reference

Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V. More...

Classes

struct  Point
struct  Edge
class  Triangle
struct  Node
class  AdvancingFront
class  CDT
class  Sweep
class  SweepContext

Enumerations

enum  Orientation { CW , CCW , COLLINEAR }

Functions

std::ostream & operator<< (std::ostream &out, const Point &point)
bool IsDelaunay (const std::vector< p2t::Triangle * > &)
 Is this set a valid delaunay triangulation?
bool cmp (const Point *a, const Point *b)
Point operator+ (const Point &a, const Point &b)
 Add two points_ component-wise.
Point operator- (const Point &a, const Point &b)
 Subtract two points_ component-wise.
Point operator* (double s, const Point &a)
 Multiply point by scalar.
bool operator== (const Point &a, const Point &b)
bool operator!= (const Point &a, const Point &b)
double Dot (const Point &a, const Point &b)
 Peform the dot product on two vectors.
double Cross (const Point &a, const Point &b)
 Perform the cross product on two vectors. In 2D this produces a scalar.
Point Cross (const Point &a, double s)
 Perform the cross product on a point and a scalar.
Point Cross (double s, const Point &a)
 Perform the cross product on a scalar and a point.
Orientation Orient2d (const Point &pa, const Point &pb, const Point &pc)
 Forumla to calculate signed area
Positive if CCW
Negative if CW
0 if collinear
.
bool InScanArea (const Point &pa, const Point &pb, const Point &pc, const Point &pd)

Variables

const double PI_3div4 = 3 * M_PI / 4
const double PI_div2 = 1.57079632679489661923
const double EPSILON = 1e-12
const double kAlpha = 0.3

Detailed Description

Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V.

Author
Mason Green mason.nosp@m..gre.nosp@m.en@gm.nosp@m.ail..nosp@m.com

and Zalik, B.(2008)'Sweep-line algorithm for constrained Delaunay triangulation', International Journal of Geographical Information Science

"FlipScan" Constrained Edge Algorithm invented by Thomas Åhlén, thahl.nosp@m.en@g.nosp@m.mail..nosp@m.com

Function Documentation

◆ Cross() [1/2]

Point p2t::Cross ( const Point & a,
double s )
inline

Perform the cross product on a point and a scalar.

In 2D this produces a point.

◆ Cross() [2/2]

Point p2t::Cross ( double s,
const Point & a )
inline

Perform the cross product on a scalar and a point.

In 2D this produces a point.

◆ Orient2d()

Orientation p2t::Orient2d ( const Point & pa,
const Point & pb,
const Point & pc )

Forumla to calculate signed area
Positive if CCW
Negative if CW
0 if collinear
.

A[P1,P2,P3]  =  (x1*y2 - y1*x2) + (x2*y3 - y2*x3) + (x3*y1 - y3*x1)
             =  (x1-x3)*(y2-y3) - (y1-y3)*(x2-x3)