00001 // This is gel/mrc/vpgl/vpgl_affine_camera.h 00002 #ifndef vpgl_affine_camera_h_ 00003 #define vpgl_affine_camera_h_ 00004 //: 00005 // \file 00006 // \brief A class for the affine camera model. 00007 // \author Thomas Pollard 00008 // \date January 28, 2005 00009 // \author Joseph Mundy, Matt Leotta, Vishal Jain 00010 00011 #include <vnl/vnl_fwd.h> 00012 #include "vpgl_proj_camera.h" 00013 00014 template <class T> 00015 class vpgl_affine_camera : public vpgl_proj_camera<T> 00016 { 00017 public: 00018 00019 //: Default constructor creates the canonical affine camera. 00020 vpgl_affine_camera(); 00021 00022 //: Construct from the first two rows. 00023 vpgl_affine_camera( const vnl_vector_fixed<T,4>& row1, 00024 const vnl_vector_fixed<T,4>& row2 ); 00025 00026 //: Construct from a 3x4 matrix, sets the last row to 0001. 00027 // The bottom right entry had better not be 0. 00028 vpgl_affine_camera( const vnl_matrix_fixed<T,3,4>& camera_matrix ); 00029 00030 virtual vcl_string type_name() const { return "vpgl_affine_camera"; } 00031 00032 //: Set the top two rows. 00033 void set_rows( const vnl_vector_fixed<T,4>& row1, 00034 const vnl_vector_fixed<T,4>& row2 ); 00035 }; 00036 00037 #endif // vpgl_affine_camera_h_
1.7.5.1