GEOS  3.9.1dev
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
geos::algorithm::HCoordinate Class Reference

Represents a homogeneous coordinate in a 2-D coordinate space. More...

#include <HCoordinate.h>

Public Member Functions

 HCoordinate ()
 
 HCoordinate (double _x, double _y, double _w)
 
 HCoordinate (const geom::Coordinate &p)
 
 HCoordinate (const geom::Coordinate &p1, const geom::Coordinate &p2)
 Constructs a homogeneous coordinate which is the intersection of the lines define by the homogenous coordinates represented by two Coordinates. More...
 
 HCoordinate (const geom::Coordinate &p1, const geom::Coordinate &p2, const geom::Coordinate &q1, const geom::Coordinate &q2)
 
 HCoordinate (const HCoordinate &p1, const HCoordinate &p2)
 
double getX () const
 
double getY () const
 
void getCoordinate (geom::Coordinate &ret) const
 

Static Public Member Functions

static void intersection (const geom::Coordinate &p1, const geom::Coordinate &p2, const geom::Coordinate &q1, const geom::Coordinate &q2, geom::Coordinate &ret)
 Computes the (approximate) intersection point between two line segments using homogeneous coordinates. More...
 

Public Attributes

double x
 
double y
 
double w
 

Friends

std::ostream & operator<< (std::ostream &o, const HCoordinate &c)
 

Detailed Description

Represents a homogeneous coordinate in a 2-D coordinate space.

HCoordinate are used as a clean way of computing intersections between line segments.

Definition at line 44 of file HCoordinate.h.

Constructor & Destructor Documentation

geos::algorithm::HCoordinate::HCoordinate ( )
geos::algorithm::HCoordinate::HCoordinate ( double  _x,
double  _y,
double  _w 
)
geos::algorithm::HCoordinate::HCoordinate ( const geom::Coordinate p)
geos::algorithm::HCoordinate::HCoordinate ( const geom::Coordinate p1,
const geom::Coordinate p2 
)

Constructs a homogeneous coordinate which is the intersection of the lines define by the homogenous coordinates represented by two Coordinates.

Parameters
p1
p2
geos::algorithm::HCoordinate::HCoordinate ( const geom::Coordinate p1,
const geom::Coordinate p2,
const geom::Coordinate q1,
const geom::Coordinate q2 
)
geos::algorithm::HCoordinate::HCoordinate ( const HCoordinate p1,
const HCoordinate p2 
)

Member Function Documentation

void geos::algorithm::HCoordinate::getCoordinate ( geom::Coordinate ret) const
double geos::algorithm::HCoordinate::getX ( ) const
double geos::algorithm::HCoordinate::getY ( ) const
static void geos::algorithm::HCoordinate::intersection ( const geom::Coordinate p1,
const geom::Coordinate p2,
const geom::Coordinate q1,
const geom::Coordinate q2,
geom::Coordinate ret 
)
static

Computes the (approximate) intersection point between two line segments using homogeneous coordinates.

Note
this algorithm is not numerically stable; i.e. it can produce intersection points which lie outside the envelope of the line segments themselves. In order to increase the precision of the calculation input points should be normalized before passing them to this routine.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o,
const HCoordinate c 
)
friend

Member Data Documentation

double geos::algorithm::HCoordinate::w

Definition at line 66 of file HCoordinate.h.

double geos::algorithm::HCoordinate::x

Definition at line 66 of file HCoordinate.h.

double geos::algorithm::HCoordinate::y

Definition at line 66 of file HCoordinate.h.


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