Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/itasc/MovingFrame.hpp')
-rw-r--r--intern/itasc/MovingFrame.hpp48
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_ */