Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vpgl_proj_camera< T > Class Template Reference

#include <vpgl_proj_camera.h>

Inheritance diagram for vpgl_proj_camera< T >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class T>
class vpgl_proj_camera< T >

Definition at line 62 of file vpgl_proj_camera.h.

Public Member Functions

 vpgl_proj_camera ()
 Default constructor makes an identity camera.
 vpgl_proj_camera (const vnl_matrix_fixed< T, 3, 4 > &camera_matrix)
 Construct from a vnl_matrix.
 vpgl_proj_camera (const T *camera_matrix)
 Construct from an array. The array should be in the order row1, row2, row3.
 vpgl_proj_camera (const vpgl_proj_camera &cam)
 Copy constructor.
virtual vcl_string type_name () const
virtual vpgl_proj_camera<
T > * 
clone (void) const
 Clone `this': creation of a new object and initialization.
const vpgl_proj_camera< T > & operator= (const vpgl_proj_camera &cam)
 Assignment.
virtual ~vpgl_proj_camera ()
virtual void project (const T x, const T y, const T z, T &u, T &v) const
 Projection from base class.
virtual vgl_homg_point_2d< T > project (const vgl_homg_point_3d< T > &world_point) const
 Project a point in world coordinates onto the image plane.
vgl_homg_point_2d< T > project (const vgl_point_3d< T > &world_point) const
 Non-homogeneous version of the above.
vgl_homg_point_2d< T > operator() (const vgl_homg_point_3d< T > &world_point) const
 A shortcut to the above function.
vgl_line_segment_2d< T > project (const vgl_line_segment_3d< T > &world_line) const
 Project a line in the world onto a line in the image plane.
vgl_line_segment_2d< T > operator() (const vgl_line_segment_3d< T > &world_line) const
 Standard () forward projection operator.
vgl_homg_line_3d_2_points< T > backproject (const vgl_homg_point_2d< T > &image_point) const
 Find the 3d ray that goes through the camera center and the provided image point.
vgl_homg_plane_3d< T > backproject (const vgl_homg_line_2d< T > &image_line) const
 Find the 3d plane that contains the camera center and the provided line in the image plane.
virtual vgl_homg_point_3d< T > camera_center () const
 Find the 3d coordinates of the center of the camera.
vgl_homg_plane_3d< T > principal_plane () const
 Find the world plane parallel to the image plane intersecting the camera center.
vgl_homg_point_2d< T > x_vanishing_point () const
 Find the image coordinates of the vanishing points of the world coordinate axes.
vgl_homg_point_2d< T > y_vanishing_point () const
vgl_homg_point_2d< T > z_vanishing_point () const
const vnl_matrix_fixed< T, 3, 4 > & get_matrix () const
 Return a copy of the camera matrix.
vnl_svd< T > * svd () const
 Get a copy of the svd of the get_matrix.
virtual bool set_matrix (const vnl_matrix_fixed< T, 3, 4 > &new_camera_matrix)
 Setters mirror the constructors and return true if the setting was successful.
virtual bool set_matrix (const T *new_camera_matrix)
virtual void b_write (vsl_b_ostream &os) const
 Binary save self to stream.
virtual void b_read (vsl_b_istream &is)
 Binary load self from stream.
short version () const
 IO version number.
void print_summary (vcl_ostream &os) const
 Print an ascii summary to the stream.
virtual vcl_string is_a () const
 Return a platform independent string identifying the class.
virtual bool is_class (vcl_string const &cls) const
 Return true if the argument matches the string identifying the class or any parent class.
virtual vpgl_proj_camera<
T > * 
cast_to_proj_camera ()
 Return `this' if `this' is a vpgl_proj_camera, 0 otherwise.
virtual const vpgl_proj_camera<
T > * 
cast_to_proj_camera () const
virtual vpgl_perspective_camera<
T > * 
cast_to_perspective_camera ()
 Return `this' if `this' is a vpgl_perspective_camera, 0 otherwise.
virtual const vpgl_perspective_camera<
T > * 
cast_to_perspective_camera () const

Private Attributes

vnl_matrix_fixed< T, 3, 4 > P_
 The internal representation of the get_matrix.
vnl_svd< T > * cached_svd_


Constructor & Destructor Documentation

template<class T>
vpgl_proj_camera< T >::vpgl_proj_camera  ) 
 

Default constructor makes an identity camera.

Definition at line 18 of file vpgl_proj_camera.txx.

template<class T>
vpgl_proj_camera< T >::vpgl_proj_camera const vnl_matrix_fixed< T, 3, 4 > &  camera_matrix  ) 
 

Construct from a vnl_matrix.

Definition at line 27 of file vpgl_proj_camera.txx.

template<class T>
vpgl_proj_camera< T >::vpgl_proj_camera const T *  camera_matrix  ) 
 

Construct from an array. The array should be in the order row1, row2, row3.

Definition at line 35 of file vpgl_proj_camera.txx.

template<class T>
vpgl_proj_camera< T >::vpgl_proj_camera const vpgl_proj_camera< T > &  cam  ) 
 

Copy constructor.

Definition at line 43 of file vpgl_proj_camera.txx.

template<class T>
vpgl_proj_camera< T >::~vpgl_proj_camera  )  [virtual]
 

Definition at line 62 of file vpgl_proj_camera.txx.


Member Function Documentation

template<class T>
void vpgl_proj_camera< T >::b_read vsl_b_istream is  )  [virtual]
 

Binary load self from stream.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 209 of file vpgl_proj_camera.txx.

template<class T>
void vpgl_proj_camera< T >::b_write vsl_b_ostream os  )  const [virtual]
 

Binary save self to stream.

Remarks:
cached_svd_ not written

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 234 of file vpgl_proj_camera.txx.

template<class T>
vgl_homg_plane_3d< T > vpgl_proj_camera< T >::backproject const vgl_homg_line_2d< T > &  image_line  )  const
 

Find the 3d plane that contains the camera center and the provided line in the image plane.

Definition at line 144 of file vpgl_proj_camera.txx.

template<class T>
vgl_homg_line_3d_2_points< T > vpgl_proj_camera< T >::backproject const vgl_homg_point_2d< T > &  image_point  )  const
 

Find the 3d ray that goes through the camera center and the provided image point.

Definition at line 128 of file vpgl_proj_camera.txx.

template<class T>
vgl_homg_point_3d< T > vpgl_proj_camera< T >::camera_center  )  const [virtual]
 

Find the 3d coordinates of the center of the camera.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 158 of file vpgl_proj_camera.txx.

template<class T>
virtual const vpgl_perspective_camera<T>* vpgl_proj_camera< T >::cast_to_perspective_camera  )  const [inline, virtual]
 

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 184 of file vpgl_proj_camera.h.

template<class T>
virtual vpgl_perspective_camera<T>* vpgl_proj_camera< T >::cast_to_perspective_camera  )  [inline, virtual]
 

Return `this' if `this' is a vpgl_perspective_camera, 0 otherwise.

This is used by e.g. the storage class

Todo:
code for affine camera and other children

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 183 of file vpgl_proj_camera.h.

template<class T>
virtual const vpgl_proj_camera<T>* vpgl_proj_camera< T >::cast_to_proj_camera  )  const [inline, virtual]
 

Definition at line 178 of file vpgl_proj_camera.h.

template<class T>
virtual vpgl_proj_camera<T>* vpgl_proj_camera< T >::cast_to_proj_camera  )  [inline, virtual]
 

Return `this' if `this' is a vpgl_proj_camera, 0 otherwise.

This is used by e.g. polymorphic binary i/o

Definition at line 177 of file vpgl_proj_camera.h.

template<class T>
vpgl_proj_camera< T > * vpgl_proj_camera< T >::clone void   )  const [virtual]
 

Clone `this': creation of a new object and initialization.

See Prototype pattern

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 69 of file vpgl_proj_camera.txx.

template<class T>
const vnl_matrix_fixed<T,3,4>& vpgl_proj_camera< T >::get_matrix  )  const [inline]
 

Return a copy of the camera matrix.

Definition at line 141 of file vpgl_proj_camera.h.

template<class T>
virtual vcl_string vpgl_proj_camera< T >::is_a  )  const [inline, virtual]
 

Return a platform independent string identifying the class.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 169 of file vpgl_proj_camera.h.

template<class T>
virtual bool vpgl_proj_camera< T >::is_class vcl_string const &  cls  )  const [inline, virtual]
 

Return true if the argument matches the string identifying the class or any parent class.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 172 of file vpgl_proj_camera.h.

template<class T>
vgl_line_segment_2d<T> vpgl_proj_camera< T >::operator() const vgl_line_segment_3d< T > &  world_line  )  const [inline]
 

Standard () forward projection operator.

Definition at line 110 of file vpgl_proj_camera.h.

template<class T>
vgl_homg_point_2d<T> vpgl_proj_camera< T >::operator() const vgl_homg_point_3d< T > &  world_point  )  const [inline]
 

A shortcut to the above function.

Definition at line 103 of file vpgl_proj_camera.h.

template<class T>
const vpgl_proj_camera< T > & vpgl_proj_camera< T >::operator= const vpgl_proj_camera< T > &  cam  ) 
 

Assignment.

Definition at line 52 of file vpgl_proj_camera.txx.

template<class T>
vgl_homg_plane_3d<T> vpgl_proj_camera< T >::principal_plane  )  const [inline]
 

Find the world plane parallel to the image plane intersecting the camera center.

Definition at line 126 of file vpgl_proj_camera.h.

template<class T>
void vpgl_proj_camera< T >::print_summary vcl_ostream &  os  )  const [inline]
 

Print an ascii summary to the stream.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 166 of file vpgl_proj_camera.h.

template<class T>
vgl_line_segment_2d< T > vpgl_proj_camera< T >::project const vgl_line_segment_3d< T > &  world_line  )  const
 

Project a line in the world onto a line in the image plane.

Definition at line 115 of file vpgl_proj_camera.txx.

template<class T>
vgl_homg_point_2d<T> vpgl_proj_camera< T >::project const vgl_point_3d< T > &  world_point  )  const [inline]
 

Non-homogeneous version of the above.

Definition at line 99 of file vpgl_proj_camera.h.

template<class T>
vgl_homg_point_2d< T > vpgl_proj_camera< T >::project const vgl_homg_point_3d< T > &  world_point  )  const [virtual]
 

Project a point in world coordinates onto the image plane.

Definition at line 79 of file vpgl_proj_camera.txx.

template<class T>
void vpgl_proj_camera< T >::project const T  x,
const T  y,
const T  z,
T &  u,
T &  v
const [virtual]
 

Projection from base class.

Implements vpgl_camera< T >.

Definition at line 98 of file vpgl_proj_camera.txx.

template<class T>
bool vpgl_proj_camera< T >::set_matrix const T *  new_camera_matrix  )  [virtual]
 

Definition at line 196 of file vpgl_proj_camera.txx.

template<class T>
bool vpgl_proj_camera< T >::set_matrix const vnl_matrix_fixed< T, 3, 4 > &  new_camera_matrix  )  [virtual]
 

Setters mirror the constructors and return true if the setting was successful.

In subclasses these should be redefined so that they won't allow setting of matrices with improper form.

Definition at line 186 of file vpgl_proj_camera.txx.

template<class T>
vnl_svd< T > * vpgl_proj_camera< T >::svd  )  const
 

Get a copy of the svd of the get_matrix.

The svd is cached when first computed and automatically recomputed when the matrix is changed.

Definition at line 169 of file vpgl_proj_camera.txx.

template<class T>
virtual vcl_string vpgl_proj_camera< T >::type_name  )  const [inline, virtual]
 

Reimplemented from vpgl_camera< T >.

Reimplemented in vpgl_affine_camera< T >, vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 79 of file vpgl_proj_camera.h.

template<class T>
short vpgl_proj_camera< T >::version  )  const [inline]
 

IO version number.

Reimplemented in vpgl_perspective_camera< T >, and vpgl_perspective_camera< double >.

Definition at line 163 of file vpgl_proj_camera.h.

template<class T>
vgl_homg_point_2d<T> vpgl_proj_camera< T >::x_vanishing_point  )  const [inline]
 

Find the image coordinates of the vanishing points of the world coordinate axes.

Definition at line 130 of file vpgl_proj_camera.h.

template<class T>
vgl_homg_point_2d<T> vpgl_proj_camera< T >::y_vanishing_point  )  const [inline]
 

Definition at line 132 of file vpgl_proj_camera.h.

template<class T>
vgl_homg_point_2d<T> vpgl_proj_camera< T >::z_vanishing_point  )  const [inline]
 

Definition at line 134 of file vpgl_proj_camera.h.


Member Data Documentation

template<class T>
vnl_svd<T>* vpgl_proj_camera< T >::cached_svd_ [mutable, private]
 

Definition at line 191 of file vpgl_proj_camera.h.

template<class T>
vnl_matrix_fixed<T,3,4> vpgl_proj_camera< T >::P_ [private]
 

The internal representation of the get_matrix.

It is private so subclasses will need to access it through "get_matrix" and "set_matrix".

Definition at line 189 of file vpgl_proj_camera.h.


The documentation for this class was generated from the following files:
Generated on Thu Jan 10 14:49:16 2008 for contrib/gel/mrc/vpgl by  doxygen 1.4.4