00001
00002
00003
00004
00005
00006 #ifndef _OBJECT_H_
00007 #define _OBJECT_H_
00008
00014 #include <irrTypes.h>
00015 #include <vector3d.h>
00016 #include <btScalar.h>
00017 #include <btVector3.h>
00018
00019 class World;
00020 class Camera;
00021 class Character;
00022
00023 class btVector3;
00024 class btRigidBody;
00025 class btCollisionShape;
00026 class btPersistentManifold;
00027
00028 namespace irr
00029 {
00030 namespace scene
00031 {
00032 class ISceneNode;
00033 }
00034 }
00035
00036 class Object
00037 {
00038 friend class World;
00039
00040 public:
00041 Object(irr::scene::ISceneNode *node);
00042 virtual ~Object();
00043
00044 void setOpposedRotation(bool y);
00045
00046 btRigidBody* getBody() const;
00047 irr::scene::ISceneNode* getNode() const;
00048
00049 btVector3 getCenterOfMassPosition() const;
00050
00051 virtual void update();
00052
00053 protected:
00054 virtual void init(btCollisionShape *shape, btScalar mass);
00055
00056 virtual void startFrame();
00057 virtual void collision(Object *obj, btPersistentManifold *manifold, float scale);
00058
00059 private:
00060 bool m_opp;
00061 World *m_world;
00062 btVector3 m_offset;
00063 btRigidBody *m_body;
00064 irr::scene::ISceneNode *m_node;
00065 };
00066
00067 #endif