Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Related Functions
vpgl_rational_camera< T > Class Template Reference

#include <vpgl_rational_camera.h>

Inheritance diagram for vpgl_rational_camera< T >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  coor_index {
  X_INDX = 0, Y_INDX, Z_INDX, U_INDX,
  V_INDX
}
 enumeration for indexing coordinates. More...
enum  poly_index { NEU_U = 0, DEN_U, NEU_V, DEN_V }
 enumeration for indexing polynomials. More...

Public Member Functions

 vpgl_rational_camera ()
 default constructor.
 vpgl_rational_camera (vcl_vector< T > const &neu_u, vcl_vector< T > const &den_u, vcl_vector< T > const &neu_v, vcl_vector< T > const &den_v, const T x_scale, const T x_off, const T y_scale, const T y_off, const T z_scale, const T z_off, const T u_scale, const T u_off, const T v_scale, const T v_off)
 Constructor from 4 coefficient vectors and 5 scale, offset pairs.
 vpgl_rational_camera (const double *neu_u, const double *den_u, const double *neu_v, const double *den_v, const T x_scale, const T x_off, const T y_scale, const T y_off, const T z_scale, const T z_off, const T u_scale, const T u_off, const T v_scale, const T v_off)
 Constructor from 4 coefficient arrays and 5 scale, offset pairs.
 vpgl_rational_camera (vcl_vector< vcl_vector< T > > const &rational_coeffs, vcl_vector< vpgl_scale_offset< T > > const &scale_offsets)
 Constructor with everything wrapped up in an array and vector.
 vpgl_rational_camera (vnl_matrix_fixed< T, 4, 20 > const &rational_coeffs, vcl_vector< vpgl_scale_offset< T > > const &scale_offsets)
 Constructor with a coefficient matrix.
virtual ~vpgl_rational_camera ()
virtual vcl_string type_name () const
 class identity functions for casting.
virtual vpgl_rational_camera< T > * clone (void) const
 Clone `this': creation of a new object and initialization.
bool operator== (vpgl_rational_camera< T > const &that) const
 Equality test.
void set_coefficients (vcl_vector< vcl_vector< T > > const &rational_coeffs)
 set rational polynomial coefficients.
void set_coefficients (vnl_matrix_fixed< T, 4, 20 > const &rational_coeffs)
void set_scale_offsets (vcl_vector< vpgl_scale_offset< T > > const &scale_offsets)
 set coordinate scale and offsets.
vnl_matrix_fixed< T, 4, 20 > coefficient_matrix () const
 get the rational polynomial coefficients in a vnl matrix.
vcl_vector< vcl_vector< T > > coefficients () const
 get the rational polynomial coefficients in a vcl array.
vcl_vector< vpgl_scale_offset
< T > > 
scale_offsets () const
 get the scale and offsets in a vector.
void set_scale (const coor_index coor_index, const T scale)
 set a specific scale value.
void set_offset (const coor_index coor_index, const T offset)
 set a specific scale value.
scale (const coor_index coor_index) const
 get a specific scale value.
offset (const coor_index coor_index) const
 get a specific offset value.
vpgl_scale_offset< T > scl_off (const coor_index coor_index) const
 get a specific scale_offset.
void set_image_offset (const T u_off, const T v_off)
 set u-v translation offset.
void image_offset (T &u_off, T &v_off)
 get u-v translation offset.
void set_image_scale (const T u_scale, const T v_scale)
 set u-v scale.
void image_scale (T &u_scale, T &v_scale)
 get u-v scale.
virtual void project (const T x, const T y, const T z, T &u, T &v) const
 The generic camera interface. u represents image column, v image row.
virtual vnl_vector_fixed< T, 2 > project (vnl_vector_fixed< T, 3 > const &world_point) const
 Project a world point onto the image.
virtual vgl_point_2d< T > project (vgl_point_3d< T > world_point) const
 Project a world point onto the image.
virtual void print (vcl_ostream &s=vcl_cout) const
 print the camera parameters.
virtual bool save (vcl_string cam_path)
vcl_string is_a () const
bool is_class (vcl_string const &name) const
void ref ()
void unref ()
int get_references () const
bool is_referenced () const

Protected Member Functions

vnl_vector_fixed< T, 20 > power_vector (const T x, const T y, const T z) const
 Create a vector with the standard order of monomial terms.

Protected Attributes

vnl_matrix_fixed< T, 4, 20 > rational_coeffs_
vcl_vector< vpgl_scale_offset
< T > > 
scale_offsets_

Related Functions

(Note that these are not member functions.)

template<class T >
vcl_ostream & operator<< (vcl_ostream &s, const vpgl_rational_camera< T > &p)
 Write to stream.
template<class T >
vcl_istream & operator>> (vcl_istream &is, vpgl_rational_camera< T > &p)
 Read from stream.
template<class T >
vpgl_rational_camera< T > * read_rational_camera (vcl_string cam_path)
 Creates a rational camera from a file.
template<class T >
vpgl_rational_camera< T > * read_rational_camera (vcl_istream &istr)
 Creates a rational camera from a stream.

Detailed Description

template<class T>
class vpgl_rational_camera< T >

Definition at line 103 of file vpgl_rational_camera.h.


Member Enumeration Documentation

template<class T>
enum vpgl_rational_camera::coor_index

enumeration for indexing coordinates.

Enumerator:
X_INDX 
Y_INDX 
Z_INDX 
U_INDX 
V_INDX 

Definition at line 107 of file vpgl_rational_camera.h.

template<class T>
enum vpgl_rational_camera::poly_index

enumeration for indexing polynomials.

Enumerator:
NEU_U 
DEN_U 
NEU_V 
DEN_V 

Definition at line 109 of file vpgl_rational_camera.h.


Constructor & Destructor Documentation

template<class T >
vpgl_rational_camera< T >::vpgl_rational_camera ( )

default constructor.

Definition at line 20 of file vpgl_rational_camera.txx.

template<class T>
vpgl_rational_camera< T >::vpgl_rational_camera ( vcl_vector< T > const &  neu_u,
vcl_vector< T > const &  den_u,
vcl_vector< T > const &  neu_v,
vcl_vector< T > const &  den_v,
const T  x_scale,
const T  x_off,
const T  y_scale,
const T  y_off,
const T  z_scale,
const T  z_off,
const T  u_scale,
const T  u_off,
const T  v_scale,
const T  v_off 
)

Constructor from 4 coefficient vectors and 5 scale, offset pairs.

Definition at line 43 of file vpgl_rational_camera.txx.

template<class T>
vpgl_rational_camera< T >::vpgl_rational_camera ( const double *  neu_u,
const double *  den_u,
const double *  neu_v,
const double *  den_v,
const T  x_scale,
const T  x_off,
const T  y_scale,
const T  y_off,
const T  z_scale,
const T  z_off,
const T  u_scale,
const T  u_off,
const T  v_scale,
const T  v_off 
)

Constructor from 4 coefficient arrays and 5 scale, offset pairs.

Definition at line 72 of file vpgl_rational_camera.txx.

template<class T>
vpgl_rational_camera< T >::vpgl_rational_camera ( vcl_vector< vcl_vector< T > > const &  rational_coeffs,
vcl_vector< vpgl_scale_offset< T > > const &  scale_offsets 
)

Constructor with everything wrapped up in an array and vector.

Constructor with an array encoding of the coefficients.

Definition at line 34 of file vpgl_rational_camera.txx.

template<class T>
vpgl_rational_camera< T >::vpgl_rational_camera ( vnl_matrix_fixed< T, 4, 20 > const &  rational_coeffs,
vcl_vector< vpgl_scale_offset< T > > const &  scale_offsets 
) [inline]

Constructor with a coefficient matrix.

Definition at line 143 of file vpgl_rational_camera.h.

template<class T>
virtual vpgl_rational_camera< T >::~vpgl_rational_camera ( ) [inline, virtual]

Definition at line 147 of file vpgl_rational_camera.h.


Member Function Documentation

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

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

See Prototype pattern

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 99 of file vpgl_rational_camera.txx.

template<class T>
vnl_matrix_fixed<T, 4, 20> vpgl_rational_camera< T >::coefficient_matrix ( ) const [inline]

get the rational polynomial coefficients in a vnl matrix.

Definition at line 170 of file vpgl_rational_camera.h.

template<class T >
vcl_vector< vcl_vector< T > > vpgl_rational_camera< T >::coefficients ( ) const

get the rational polynomial coefficients in a vcl array.

Definition at line 121 of file vpgl_rational_camera.txx.

template<class T>
void vpgl_rational_camera< T >::image_offset ( T &  u_off,
T &  v_off 
) [inline]

get u-v translation offset.

Definition at line 201 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::image_scale ( T &  u_scale,
T &  v_scale 
) [inline]

get u-v scale.

Definition at line 210 of file vpgl_rational_camera.h.

template<class T>
vcl_string vpgl_camera< T >::is_a ( ) const [inline, inherited]

Reimplemented in vpgl_geo_camera.

Definition at line 37 of file vpgl_camera.h.

template<class T>
bool vpgl_camera< T >::is_class ( vcl_string const &  name) const [inline, inherited]

Reimplemented in vpgl_geo_camera.

Definition at line 38 of file vpgl_camera.h.

template<class T>
T vpgl_rational_camera< T >::offset ( const coor_index  coor_index) const [inline]

get a specific offset value.

Definition at line 187 of file vpgl_rational_camera.h.

template<class T>
bool vpgl_rational_camera< T >::operator== ( vpgl_rational_camera< T > const &  that) const [inline]

Equality test.

Definition at line 156 of file vpgl_rational_camera.h.

template<class T>
vnl_vector_fixed< T, 20 > vpgl_rational_camera< T >::power_vector ( const T  x,
const T  y,
const T  z 
) const [protected]

Create a vector with the standard order of monomial terms.

Definition at line 136 of file vpgl_rational_camera.txx.

template<class T >
void vpgl_rational_camera< T >::print ( vcl_ostream &  s = vcl_cout) const [virtual]

print the camera parameters.

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 231 of file vpgl_rational_camera.txx.

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

The generic camera interface. u represents image column, v image row.

Implements vpgl_camera< T >.

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 194 of file vpgl_rational_camera.txx.

template<class T>
vnl_vector_fixed< T, 2 > vpgl_rational_camera< T >::project ( vnl_vector_fixed< T, 3 > const &  world_point) const [virtual]

Project a world point onto the image.

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 212 of file vpgl_rational_camera.txx.

template<class T>
vgl_point_2d< T > vpgl_rational_camera< T >::project ( vgl_point_3d< T >  world_point) const [virtual]

Project a world point onto the image.

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 222 of file vpgl_rational_camera.txx.

template<class T >
bool vpgl_rational_camera< T >::save ( vcl_string  cam_path) [virtual]

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 344 of file vpgl_rational_camera.txx.

template<class T>
T vpgl_rational_camera< T >::scale ( const coor_index  coor_index) const [inline]

get a specific scale value.

Definition at line 184 of file vpgl_rational_camera.h.

template<class T>
vcl_vector<vpgl_scale_offset<T> > vpgl_rational_camera< T >::scale_offsets ( ) const [inline]

get the scale and offsets in a vector.

Definition at line 175 of file vpgl_rational_camera.h.

template<class T>
vpgl_scale_offset<T> vpgl_rational_camera< T >::scl_off ( const coor_index  coor_index) const [inline]

get a specific scale_offset.

Definition at line 190 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_coefficients ( vcl_vector< vcl_vector< T > > const &  rational_coeffs)

set rational polynomial coefficients.

Definition at line 106 of file vpgl_rational_camera.txx.

template<class T>
void vpgl_rational_camera< T >::set_coefficients ( vnl_matrix_fixed< T, 4, 20 > const &  rational_coeffs) [inline]

Definition at line 165 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_image_offset ( const T  u_off,
const T  v_off 
) [inline]

set u-v translation offset.

Definition at line 196 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_image_scale ( const T  u_scale,
const T  v_scale 
) [inline]

set u-v scale.

Definition at line 205 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_offset ( const coor_index  coor_index,
const T  offset 
) [inline]

set a specific scale value.

Definition at line 181 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_scale ( const coor_index  coor_index,
const T  scale 
) [inline]

set a specific scale value.

Definition at line 178 of file vpgl_rational_camera.h.

template<class T>
void vpgl_rational_camera< T >::set_scale_offsets ( vcl_vector< vpgl_scale_offset< T > > const &  scale_offsets)

set coordinate scale and offsets.

Definition at line 115 of file vpgl_rational_camera.txx.

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

class identity functions for casting.

Reimplemented from vpgl_camera< T >.

Reimplemented in vpgl_local_rational_camera< T >.

Definition at line 149 of file vpgl_rational_camera.h.


Friends And Related Function Documentation

template<class T >
vcl_ostream & operator<< ( vcl_ostream &  s,
const vpgl_rational_camera< T > &  p 
) [related]

Write to stream.

template<class T >
vcl_istream & operator>> ( vcl_istream &  is,
vpgl_rational_camera< T > &  p 
) [related]

Read from stream.

template<class T >
vpgl_rational_camera< T > * read_rational_camera ( vcl_string  cam_path) [related]

Creates a rational camera from a file.

template<class T >
vpgl_rational_camera< T > * read_rational_camera ( vcl_istream &  istr) [related]

Creates a rational camera from a stream.


Member Data Documentation

template<class T>
vnl_matrix_fixed<T, 4, 20> vpgl_rational_camera< T >::rational_coeffs_ [protected]

Definition at line 235 of file vpgl_rational_camera.h.

template<class T>
vcl_vector<vpgl_scale_offset<T> > vpgl_rational_camera< T >::scale_offsets_ [protected]

Definition at line 236 of file vpgl_rational_camera.h.


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