Libbarrett
1.2.4
|
00001 /* 00002 * kinematics.h 00003 * 00004 * Created on: Jan 14, 2010 00005 * Author: dc 00006 */ 00007 00008 #ifndef BARRETT_MATH_KINEMATICS_H_ 00009 #define BARRETT_MATH_KINEMATICS_H_ 00010 00011 00012 #include <libconfig.h++> 00013 #include <boost/tuple/tuple.hpp> 00014 00015 #include <barrett/detail/ca_macro.h> 00016 #include <barrett/units.h> 00017 00018 00019 // forward declaration from <barrett/cdlbt/kinematics.h> 00020 struct bt_kinematics; 00021 00022 00023 namespace barrett { 00024 namespace math { 00025 00026 00027 template<size_t DOF> 00028 class Kinematics { 00029 BARRETT_UNITS_TEMPLATE_TYPEDEFS(DOF); 00030 00031 public: 00032 explicit Kinematics(const libconfig::Setting& setting); 00033 ~Kinematics(); 00034 00035 void eval(const jp_type& jp, const jv_type& jv); 00036 00037 typedef typename units::CartesianPosition::type result_type; 00038 result_type operator() (const boost::tuple<jp_type, jv_type>& jointState); 00039 00040 //protected: 00041 struct bt_kinematics* impl; 00042 00043 private: 00044 DISALLOW_COPY_AND_ASSIGN(Kinematics); 00045 }; 00046 00047 00048 } 00049 } 00050 00051 00052 // include template definitions 00053 #include <barrett/math/detail/kinematics-inl.h> 00054 00055 00056 #endif /* BARRETT_MATH_KINEMATICS_H_ */