diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2009-09-25 01:22:24 +0400 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2009-09-25 01:22:24 +0400 |
commit | 1483fafd1372a3d3e025d08634e798adb7da512f (patch) | |
tree | 9191765749e29866339f4c31d892603f5f8b334d /intern/itasc/MovingFrame.hpp | |
parent | c995c605f640d8d688e6e58e0fe247ca83f91696 (diff) | |
parent | 222fe6b1a5d49f67177cbb762f55a0e482145f5d (diff) |
Merge of itasc branch. Project files, scons and cmake should be working. Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library.
Diffstat (limited to 'intern/itasc/MovingFrame.hpp')
-rw-r--r-- | intern/itasc/MovingFrame.hpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/intern/itasc/MovingFrame.hpp b/intern/itasc/MovingFrame.hpp new file mode 100644 index 00000000000..edaa3136a13 --- /dev/null +++ b/intern/itasc/MovingFrame.hpp @@ -0,0 +1,48 @@ +/* $Id: MovingFrame.hpp 19907 2009-04-23 13:41:59Z ben2610 $ + * MovingFrame.h + * + * Created on: Feb 10, 2009 + * Author: benoitbolsee + */ + +#ifndef MOVINGFRAME_HPP_ +#define MOVINGFRAME_HPP_ + +#include "UncontrolledObject.hpp" +#include <vector> + + +namespace iTaSC{ + +typedef bool (*MovingFrameCallback)(const Timestamp& timestamp, const Frame& _current, Frame& _next, void *param); + +class MovingFrame: public UncontrolledObject { +public: + MovingFrame(const Frame& frame=F_identity); + virtual ~MovingFrame(); + + bool setFrame(const Frame& frame); + bool setCallback(MovingFrameCallback _function, void* _param); + + virtual void updateCoordinates(const Timestamp& timestamp); + virtual void updateKinematics(const Timestamp& timestamp); + virtual void pushCache(const Timestamp& timestamp); + virtual void initCache(Cache *_cache); + virtual void finalize(); +protected: + virtual void updateJacobian(); + +private: + void pushInternalFrame(CacheTS timestamp); + bool popInternalFrame(CacheTS timestamp); + MovingFrameCallback m_function; + void* m_param; + Frame m_nextPose; + Twist m_velocity; + int m_poseCCh; // cache channel for pose + unsigned int m_poseCTs; +}; + +} + +#endif /* MOVINGFRAME_H_ */ |