00001 // This is gel/pop/pop_point_3d.h 00002 #ifndef pop_point_3d_h_ 00003 #define pop_point_3d_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief a 2d point with a coordinate system 00010 // 00011 // \author 00012 // Peter Tu April 2003 00013 // General Electric 00014 // 00015 //------------------------------------------------------------------------------- 00016 00017 #include<vgl/vgl_point_3d.h> 00018 #include<pop/pop_geometric_object.h> 00019 00020 //: this is a 2d point with a coordinate system 00021 00022 class pop_point_3d:public vgl_point_3d<double>, public pop_geometric_object 00023 { 00024 public: 00025 //: constructor 00026 pop_point_3d(pop_vertex *coordinate_system,vcl_vector<pop_parameter*> ¶ms); 00027 00028 //: used when this is not a parametric object 00029 pop_point_3d(pop_vertex *coordinate_system, double x, double y, double z); 00030 00031 //: destructor 00032 virtual ~pop_point_3d(); 00033 00034 //: this is the update method 00035 00036 virtual void update(); 00037 00038 //: this is the casting which needs to be done 00039 virtual pop_point_3d* cast_to_pop_point_3d() {return this;} 00040 00041 //: this is the square distance between two 3d points 00042 virtual double cost(pop_geometric_object *other); 00043 }; 00044 00045 #endif // pop_point_3d_h_ 00046
1.5.1