Libbarrett  1.2.4
include/barrett/math/kinematics.h
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_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Defines