objctxt.h
Go to the documentation of this file.
00001 
00059 /*
00060  * objctxt.h
00061  *
00062  *  Created on: 29.05.2012
00063  *      Author: josh
00064  */
00065 
00066 #ifndef OBJCTXT_H_
00067 #define OBJCTXT_H_
00068 
00069 #include "object.h"
00070 #include "../../curved_polygons/bb.h"
00071 
00072 namespace Dummy
00073 {
00074   template<typename _DOF6>
00075   class OBJCTXT
00076   {
00077   public:
00078     typedef Dummy::Object OBJECT;
00079     typedef _DOF6 DOF6;
00080     typedef boost::shared_ptr<OBJCTXT> Ptr;
00081     typedef BoundingBox::FoVBB<float> BB;
00082 
00083     BB bb_;
00084     int ctr_;
00085 
00086     OBJCTXT(): ctr_(1) {}
00087 
00088     void clear() {}
00089     void update() {}
00090     bool empty() const {return false;}
00091     void operator+=(OBJECT::Ptr obj) {}
00092     void operator+=(const OBJCTXT &obj) {}
00093 
00094     bool registration(const OBJCTXT &ctxt, DOF6 &tf, typename DOF6::TYPE &probability_success_rate, typename DOF6::TYPE &probability_error_rate){
00095       typename DOF6::SOURCE1 &magic_box(*tf.getSource1());
00096       magic_box.reset();
00097 
00098       Eigen::Vector3f t=Eigen::Vector3f::Zero(),dt=Eigen::Vector3f::Zero(),v;
00099       Eigen::Matrix3f R=Eigen::Matrix3f::Identity();
00100 
00101       Eigen::AngleAxisf aa(0.1f,Eigen::Vector3f::Identity());
00102       dt(0) = 0.2f;
00103 
00104       for(int i=0; i<ctr_; i++) {
00105         t += dt;
00106         R = aa*R;
00107       }
00108       ++ctr_;
00109 
00110       v(0)=1;v(1)=v(2)=0;
00111       magic_box(
00112           typename DOF6::SOURCE1::TFLinkObj(v, false,false, 1, 1),
00113           typename DOF6::SOURCE1::TFLinkObj(R*v+t,false,false, 1, 1)
00114             );
00115 
00116       v(1)=1;v(0)=v(2)=0;
00117       magic_box(
00118           typename DOF6::SOURCE1::TFLinkObj(v, false,false, 1, 1),
00119           typename DOF6::SOURCE1::TFLinkObj(R*v+t,false,false, 1, 1)
00120             );
00121 
00122       v(2)=1;v(1)=v(0)=0;
00123       magic_box(
00124           typename DOF6::SOURCE1::TFLinkObj(v, false,false, 1, 1),
00125           typename DOF6::SOURCE1::TFLinkObj(R*v+t,false,false, 1, 1)
00126             );
00127 
00128       magic_box.finish();
00129 
00130       return true;//ctr_<5;
00131     }
00132 
00133     bool merge(const OBJCTXT &ctxt, const DOF6 &tf, std::map<typename OBJECT::Ptr,bool> &used, const BoundingBox::TransformedFoVBB &fov, const bool only_merge) {
00134       return false;
00135     }
00136 
00137     size_t getNumObjs() const {return 10;}
00138 
00139     const BB getBoundingBox() const {return bb_;}
00140 
00141     OBJCTXT &transform(const DOF6 &tf) {}
00142     typename OBJCTXT::Ptr clone() const {return typename OBJCTXT::Ptr(new OBJCTXT(*this));}
00143 
00144   };
00145 }
00146 
00147 
00148 
00149 #endif /* OBJCTXT_H_ */


cob_3d_mapping_slam
Author(s): Joshua Hampp
autogenerated on Wed Aug 26 2015 11:04:51