00001 // This is gel/pop/pop_rigid_3d.h 00002 #ifndef pop_rigid_3d_h_ 00003 #define pop_rigid_3d_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_3d.h> 00019 #include<pop/pop_transform.h> 00020 00021 //: A parameter that can be optimized 00022 class pop_rigid_3d : public pop_transform 00023 { 00024 public: 00025 //: constructor 00026 // the parameters for this transform are 00027 // the Euler angle r1 r2 r2 and the translation t1 t2 t3 00028 pop_rigid_3d(vcl_vector<pop_parameter*> params, 00029 pop_vertex *cs1, pop_vertex *cs2); 00030 00031 //: destructor 00032 virtual ~pop_rigid_3d(); 00033 00034 //: transform a geometric object 00035 virtual pop_geometric_object* transform(pop_geometric_object *obj); 00036 00037 //: update the transform based on the parameters 00038 virtual void update(); 00039 00040 private: 00041 vgl_h_matrix_3d<double> trans_; 00042 }; 00043 00044 #endif // pop_rigid_3d_h_
1.5.1