00001 // This is gel/pop/pop_transform.h 00002 #ifndef pop_transform_h_ 00003 #define pop_transform_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<pop/pop_parameter.h> 00019 #include<vcl_vector.h> 00020 #include<pop/pop_vertex.h> 00021 #include<pop/pop_geometric_object.h> 00022 00023 //: A parameter that can be optimized 00024 class pop_transform:public pop_object 00025 { 00026 public: 00027 //: constructor 00028 pop_transform(vcl_vector<pop_parameter*> params, 00029 pop_vertex *cs1, pop_vertex *cs2); 00030 00031 //: destructor 00032 virtual ~pop_transform(); 00033 00034 //: transform a geometric object 00035 virtual pop_geometric_object* transform(pop_geometric_object *obj)=0; 00036 00037 virtual void update() = 0; 00038 00039 protected: 00040 // the source coordinate system 00041 pop_vertex *cs1_; 00042 00043 // the target coordinate suystem 00044 pop_vertex *cs2_; 00045 }; 00046 00047 #endif // pop_transform_h_
1.5.1