#include <vgl_point_2d.h>
Definition at line 26 of file vgl_point_2d.h.
Public Member Functions | |
| vgl_point_2d () | |
| Default constructor. | |
| vgl_point_2d (Type px, Type py) | |
| Construct from two Types. | |
| vgl_point_2d (Type const v[2]) | |
| Construct from 2-array. | |
| vgl_point_2d (vgl_homg_point_2d< Type > const &p) | |
| Construct from homogeneous point. | |
| vgl_point_2d (vgl_line_2d< Type > const &l1, vgl_line_2d< Type > const &l2) | |
| Construct from 2 lines (intersection). | |
| bool | operator== (vgl_point_2d< Type >const &p) const |
| Test for equality. | |
| bool | operator!= (vgl_point_2d< Type >const &p) const |
| Type & | x () |
| Type & | y () |
| Type | x () const |
| Type | y () const |
| void | set (Type px, Type py) |
| Set x and y. | |
| void | set (Type const p[2]) |
| Set x and y. | |
| bool | ideal (Type=(Type) 0) const |
| Return true iff the point is at infinity (an ideal point). | |
Private Attributes | |
| Type | x_ |
| Type | y_ |
Related Functions | |
| (Note that these are not member functions.) | |
| vgl_point_2d< T > | vgl_closest_point_origin (vgl_line_2d< T > const &l) |
| Return the point on the given line closest to the origin. | |
| double | vgl_distance (vgl_point_2d< T >const &p1, vgl_point_2d< T >const &p2) |
| return the distance between two points. | |
| vcl_ostream & | operator<< (vcl_ostream &s, vgl_point_2d< Type > const &p) |
| Write "<vgl_point_2d x,y>" to stream. | |
| vcl_istream & | operator>> (vcl_istream &s, vgl_point_2d< Type > &p) |
| Read x y from stream. | |
| vgl_vector_2d< Type > | operator- (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2) |
| The difference of two points is the vector from second to first point. | |
| vgl_point_2d< Type > | operator+ (vgl_point_2d< Type > const &p, vgl_vector_2d< Type > const &v) |
| Adding a vector to a point gives a new point at the end of that vector. | |
| vgl_point_2d< Type > & | operator+= (vgl_point_2d< Type > &p, vgl_vector_2d< Type > const &v) |
| Adding a vector to a point gives the point at the end of that vector. | |
| vgl_point_2d< Type > | operator- (vgl_point_2d< Type > const &p, vgl_vector_2d< Type > const &v) |
| Subtracting a vector from a point is the same as adding the inverse vector. | |
| vgl_point_2d< Type > & | operator-= (vgl_point_2d< Type > &p, vgl_vector_2d< Type > const &v) |
| Subtracting a vector from a point is the same as adding the inverse vector. | |
| double | cross_ratio (vgl_point_2d< T >const &p1, vgl_point_2d< T >const &p2, vgl_point_2d< T >const &p3, vgl_point_2d< T >const &p4) |
| cross ratio of four collinear points. | |
| bool | collinear (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2, vgl_point_2d< Type > const &p3) |
| Are three points collinear, i.e., do they lie on a common line?. | |
| double | ratio (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2, vgl_point_2d< Type > const &p3) |
| Return the relative distance to p1 wrt p1-p2 of p3. | |
| vgl_point_2d< Type > | midpoint (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2, Type f=(Type) 0.5) |
| Return the point at a given ratio wrt two other points. | |
| vgl_point_2d< Type > | centre (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2) |
| Return the point at the centre of gravity of two given points. | |
| vgl_point_2d< Type > | centre (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2, vgl_point_2d< Type > const &p3) |
| Return the point at the centre of gravity of three given points. | |
| vgl_point_2d< Type > | centre (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2, vgl_point_2d< Type > const &p3, vgl_point_2d< Type > const &p4) |
| Return the point at the centre of gravity of four given points. | |
| vgl_point_2d< Type > | centre (vcl_vector< vgl_point_2d< Type > > const &v) |
| Return the point at the centre of gravity of a set of given points. | |
| vgl_point_2d< Type >::vgl_point_2d | ( | ) | [inline] |
| vgl_point_2d< Type >::vgl_point_2d | ( | Type | px, | |
| Type | py | |||
| ) | [inline] |
| vgl_point_2d< Type >::vgl_point_2d | ( | Type const | v[2] | ) | [inline] |
| vgl_point_2d< Type >::vgl_point_2d | ( | vgl_homg_point_2d< Type > const & | p | ) |
| vgl_point_2d< Type >::vgl_point_2d | ( | vgl_line_2d< Type > const & | l1, | |
| vgl_line_2d< Type > const & | l2 | |||
| ) |
| bool vgl_point_2d< Type >::operator== | ( | vgl_point_2d< Type >const & | p | ) | const [inline] |
| bool vgl_point_2d< Type >::operator!= | ( | vgl_point_2d< Type >const & | p | ) | const [inline] |
Definition at line 65 of file vgl_point_2d.h.
| Type& vgl_point_2d< Type >::x | ( | ) | [inline] |
Definition at line 70 of file vgl_point_2d.h.
| Type& vgl_point_2d< Type >::y | ( | ) | [inline] |
Definition at line 71 of file vgl_point_2d.h.
| Type vgl_point_2d< Type >::x | ( | ) | const [inline] |
Definition at line 73 of file vgl_point_2d.h.
| Type vgl_point_2d< Type >::y | ( | ) | const [inline] |
Definition at line 74 of file vgl_point_2d.h.
| void vgl_point_2d< Type >::set | ( | Type | px, | |
| Type | py | |||
| ) | [inline] |
Set x and y.
Note that x and y can also be set individually.
Definition at line 78 of file vgl_point_2d.h.
| void vgl_point_2d< Type >::set | ( | Type const | p[2] | ) | [inline] |
Set x and y.
Note that x and y can also be set individually.
Definition at line 81 of file vgl_point_2d.h.
| bool vgl_point_2d< Type >::ideal | ( | Type | = (Type)0 |
) | const [inline] |
Return true iff the point is at infinity (an ideal point).
Always returns false.
Definition at line 85 of file vgl_point_2d.h.
| vgl_point_2d< T > vgl_closest_point_origin | ( | vgl_line_2d< T > const & | l | ) | [related] |
Return the point on the given line closest to the origin.
Definition at line 186 of file vgl_closest_point.txx.
| double vgl_distance | ( | vgl_point_2d< T >const & | p1, | |
| vgl_point_2d< T >const & | p2 | |||
| ) | [related] |
| vcl_ostream & operator<< | ( | vcl_ostream & | s, | |
| vgl_point_2d< Type > const & | p | |||
| ) | [related] |
| vcl_istream & operator>> | ( | vcl_istream & | s, | |
| vgl_point_2d< Type > & | p | |||
| ) | [related] |
| vgl_vector_2d< Type > operator- | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2 | |||
| ) | [related] |
The difference of two points is the vector from second to first point.
Definition at line 110 of file vgl_point_2d.h.
| vgl_point_2d< Type > operator+ | ( | vgl_point_2d< Type > const & | p, | |
| vgl_vector_2d< Type > const & | v | |||
| ) | [related] |
Adding a vector to a point gives a new point at the end of that vector.
Note that vector + point is not defined! It's always point + vector.
Definition at line 118 of file vgl_point_2d.h.
| vgl_point_2d< Type > & operator+= | ( | vgl_point_2d< Type > & | p, | |
| vgl_vector_2d< Type > const & | v | |||
| ) | [related] |
Adding a vector to a point gives the point at the end of that vector.
Definition at line 125 of file vgl_point_2d.h.
| vgl_point_2d< Type > operator- | ( | vgl_point_2d< Type > const & | p, | |
| vgl_vector_2d< Type > const & | v | |||
| ) | [related] |
Subtracting a vector from a point is the same as adding the inverse vector.
Definition at line 132 of file vgl_point_2d.h.
| vgl_point_2d< Type > & operator-= | ( | vgl_point_2d< Type > & | p, | |
| vgl_vector_2d< Type > const & | v | |||
| ) | [related] |
Subtracting a vector from a point is the same as adding the inverse vector.
Definition at line 139 of file vgl_point_2d.h.
| double cross_ratio | ( | vgl_point_2d< T >const & | p1, | |
| vgl_point_2d< T >const & | p2, | |||
| vgl_point_2d< T >const & | p3, | |||
| vgl_point_2d< T >const & | p4 | |||
| ) | [related] |
cross ratio of four collinear points.
This number is projectively invariant, and it is the coordinate of p4 in the reference frame where p2 is the origin (coordinate 0), p3 is the unity (coordinate 1) and p1 is the point at infinity. This cross ratio is often denoted as ((p1, p2; p3, p4)) (which also equals ((p3, p4; p1, p2)) or ((p2, p1; p4, p3)) or ((p4, p3; p2, p1)) ) and is calculated as
p1 - p3 p2 - p3 (p1-p3)(p2-p4)
------- : -------- = --------------
p1 - p4 p2 - p4 (p1-p4)(p2-p3)
In this implementation, a least-squares result is calculated when the points are not exactly collinear.
Definition at line 33 of file vgl_point_2d.txx.
| bool collinear | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2, | |||
| vgl_point_2d< Type > const & | p3 | |||
| ) | [related] |
Are three points collinear, i.e., do they lie on a common line?.
Definition at line 170 of file vgl_point_2d.h.
| double ratio | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2, | |||
| vgl_point_2d< Type > const & | p3 | |||
| ) | [related] |
Return the relative distance to p1 wrt p1-p2 of p3.
The three points should be collinear and p2 should not equal p1. This is the coordinate of p3 in the affine 1D reference frame (p1,p2). If p3=p1, the ratio is 0; if p1=p3, the ratio is 1. The mid point of p1 and p2 has ratio 0.5. Note that the return type is double, not Type, since the ratio of e.g. two vgl_vector_2d<int> need not be an int.
Definition at line 184 of file vgl_point_2d.h.
| vgl_point_2d< Type > midpoint | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2, | |||
| Type | f = (Type)0.5 | |||
| ) | [related] |
Return the point at a given ratio wrt two other points.
By default, the mid point (ratio=0.5) is returned. Note that the third argument is Type, not double, so the midpoint of e.g. two vgl_point_2d<int> is not a valid concept. But the reflection point of p2 wrt p1 is: in that case f=-1.
Definition at line 196 of file vgl_point_2d.h.
| vgl_point_2d< Type > centre | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2 | |||
| ) | [related] |
Return the point at the centre of gravity of two given points.
Identical to midpoint(p1,p2).
Definition at line 209 of file vgl_point_2d.h.
| vgl_point_2d< Type > centre | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2, | |||
| vgl_point_2d< Type > const & | p3 | |||
| ) | [related] |
Return the point at the centre of gravity of three given points.
Definition at line 219 of file vgl_point_2d.h.
| vgl_point_2d< Type > centre | ( | vgl_point_2d< Type > const & | p1, | |
| vgl_point_2d< Type > const & | p2, | |||
| vgl_point_2d< Type > const & | p3, | |||
| vgl_point_2d< Type > const & | p4 | |||
| ) | [related] |
Return the point at the centre of gravity of four given points.
Definition at line 230 of file vgl_point_2d.h.
| vgl_point_2d< Type > centre | ( | vcl_vector< vgl_point_2d< Type > > const & | v | ) | [related] |
Return the point at the centre of gravity of a set of given points.
Beware of possible rounding errors when Type is e.g. int.
Definition at line 243 of file vgl_point_2d.h.
Type vgl_point_2d< Type >::x_ [private] |
Definition at line 29 of file vgl_point_2d.h.
Type vgl_point_2d< Type >::y_ [private] |
Definition at line 30 of file vgl_point_2d.h.
1.5.1