contrib/gel/pop/pop_homography_2d.h

Go to the documentation of this file.
00001 // This is gel/pop/pop_homography_2d.h
00002 #ifndef pop_homography_2d_h_
00003 #define pop_homography_2d_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief this is a vertex/coordinate system in a coordinate system graph
00010 //
00011 // \author
00012 //            Peter Tu April 2003
00013 //            General Electric
00014 //
00015 //-------------------------------------------------------------------------------
00016 
00017 #include<pop/pop_object.h>
00018 #include<vgl/algo/vgl_h_matrix_2d.h>
00019 #include<pop/pop_transform.h>
00020 #include<pop/pop_vertex.h>
00021 #include<vcl_vector.h>
00022 #include<pop/pop_parameter.h>
00023 #include<pop/pop_geometric_object.h>
00024 
00025 //: A parameter that can be optimized
00026 class pop_homography_2d : public pop_transform
00027 {
00028  public:
00029   //: constructor
00030   // We have an arbitrary 3 by 3 matrix
00031   // |p1 p2 p3|
00032   // |p3 p4 p5|
00033   // |p6 p7 p8|
00034   //
00035   pop_homography_2d(vcl_vector<pop_parameter*> params,
00036                     pop_vertex *cs1, pop_vertex *cs2);
00037 
00038   //: destructor
00039   ~pop_homography_2d();
00040 
00041   //: transform a geometric object
00042   virtual pop_geometric_object* transform(pop_geometric_object *obj);
00043 
00044   //: update the transform based on the parameters
00045   virtual void update();
00046 
00047  private:
00048   vgl_h_matrix_2d<double> trans_;
00049 };
00050 
00051 #endif // pop_homography_2d_h_

Generated on Sat Oct 11 05:14:37 2008 for contrib/gel/pop by  doxygen 1.5.1