Defines | Functions
core/vgl/vgl_point_2d.txx File Reference
#include "vgl_point_2d.h"
#include <vgl/vgl_homg_point_2d.h>
#include <vgl/vgl_line_2d.h>
#include <vgl/vgl_homg_line_2d.h>
#include <vcl_iostream.h>
#include <vcl_iomanip.h>

Go to the source code of this file.

Defines

#define vgl_point_2d_txx_
#define VGL_POINT_2D_INSTANTIATE(T)

Functions

template<class T >
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.
template<class Type >
vcl_ostream & operator<< (vcl_ostream &s, vgl_point_2d< Type > const &p)
 Write "<vgl_point_2d x,y> " to stream.
template<class Type >
vcl_istream & operator>> (vcl_istream &is, vgl_point_2d< Type > &p)
 Read x y from stream.

Detailed Description

Definition in file vgl_point_2d.txx.


Define Documentation

#define VGL_POINT_2D_INSTANTIATE (   T)
Value:
template class vgl_point_2d<T >; \
template double cross_ratio(vgl_point_2d<T >const&, vgl_point_2d<T >const&, \
                            vgl_point_2d<T >const&, vgl_point_2d<T >const&); \
template vcl_ostream& operator<<(vcl_ostream&, const vgl_point_2d<T >&); \
template vcl_istream& operator>>(vcl_istream&, vgl_point_2d<T >&)

Definition at line 87 of file vgl_point_2d.txx.

#define vgl_point_2d_txx_

Definition at line 3 of file vgl_point_2d.txx.


Function Documentation

template<class T >
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.

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)
   

If three of the given points coincide, the cross ratio is not defined.

In this implementation, a least-squares result is calculated when the points are not exactly collinear.

Definition at line 34 of file vgl_point_2d.txx.

template<class Type >
vcl_ostream& operator<< ( vcl_ostream &  s,
vgl_point_2d< Type > const &  p 
)

Write "<vgl_point_2d x,y> " to stream.

Write "<vgl_point_2d x,y>" to stream.

Definition at line 48 of file vgl_point_2d.txx.

template<class Type >
vcl_istream& operator>> ( vcl_istream &  is,
vgl_point_2d< Type > &  p 
)

Read x y from stream.

Read from stream, possibly with formatting.

Definition at line 81 of file vgl_point_2d.txx.