contrib/gel/mrc/vpgl/vpgl_affine_camera.h
Go to the documentation of this file.
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_