00001 #ifndef target_object_h___ 00002 #define target_object_h___ 00003 00004 #include "../include/contact_point.h" 00005 #include "../include/utilities.h" 00006 #include <string> 00007 #include <iostream> 00008 00009 namespace ICR 00010 { 00011 //-------------------------------------------------------------------- 00012 //-------------------------------------------------------------------- 00021 class TargetObject 00022 { 00023 00024 private: 00025 00026 std::string name_; 00027 uint num_cp_; 00028 ContactPointList contact_points_; 00029 00030 // uint findClosestIdxCore(double x, double y, double z); 00031 00032 public: 00033 00034 friend class ObjectLoader; 00035 00036 TargetObject(); 00037 TargetObject(std::string const& name); 00038 TargetObject(TargetObject const& src); 00039 TargetObject& operator=(TargetObject const& src); 00040 friend std::ostream& operator<<(std::ostream& stream, TargetObject const& obj); 00041 ~TargetObject(); 00042 00043 std::string const getName() const; 00044 void setName(std::string const& name); 00045 uint getNumCp() const; 00046 void reserveCpList(uint num_cp); 00047 // uint findClosestIdx(double x, double y, double z); 00048 // uint findClosestIdx(Eigen::Vector3d& pt); 00049 void addContactPoint(ContactPoint const& point); 00053 void scaleObject(double scale); 00054 ContactPoint const* getContactPoint(uint id) const; 00055 }; 00056 //-------------------------------------------------------------------- 00057 //-------------------------------------------------------------------- 00058 }//namespace ICR 00059 #endif