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/Object.hpp')
-rw-r--r--intern/itasc/Object.hpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/intern/itasc/Object.hpp b/intern/itasc/Object.hpp
new file mode 100644
index 00000000000..5c312cab768
--- /dev/null
+++ b/intern/itasc/Object.hpp
@@ -0,0 +1,48 @@
+/* $Id: Object.hpp 19907 2009-04-23 13:41:59Z ben2610 $
+ * Object.hpp
+ *
+ * Created on: Jan 5, 2009
+ * Author: rubensmits
+ */
+
+#ifndef OBJECT_HPP_
+#define OBJECT_HPP_
+
+#include "Cache.hpp"
+#include "kdl/frames.hpp"
+#include <string>
+
+namespace iTaSC{
+
+class WorldObject;
+
+class Object {
+public:
+ enum ObjectType {Controlled, UnControlled};
+ static WorldObject world;
+
+private:
+ ObjectType m_type;
+protected:
+ Cache *m_cache;
+ KDL::Frame m_internalPose;
+ bool m_updated;
+ virtual void updateJacobian()=0;
+public:
+ Object(ObjectType _type):m_type(_type), m_cache(NULL), m_internalPose(F_identity), m_updated(false) {};
+ virtual ~Object(){};
+
+ virtual int addEndEffector(const std::string& name){return 0;};
+ virtual void finalize(){};
+ virtual const KDL::Frame& getPose(const unsigned int end_effector=0){return m_internalPose;};
+ virtual const ObjectType getType(){return m_type;};
+ virtual const unsigned int getNrOfCoordinates(){return 0;};
+ virtual void updateKinematics(const Timestamp& timestamp)=0;
+ virtual void pushCache(const Timestamp& timestamp)=0;
+ virtual void initCache(Cache *_cache) = 0;
+ bool updated() {return m_updated;};
+ void updated(bool val) {m_updated=val;};
+};
+
+}
+#endif /* OBJECT_HPP_ */