Couch
Rigidbody.h
Go to the documentation of this file.
1 
23 #ifndef RIGIDBODY_H
24 #define RIGIDBODY_H
25 
26 #include <btBulletDynamicsCommon.h>
27 
28 #include "types.h"
29 #include "Spatial.h"
30 #include "CollisionShape.h"
31 
35 class Rigidbody : public Spatial {
36 public:
37  Rigidbody();
38 
43  virtual void Translate(Vector3 offset);
44 
45 
50  void SetCollisionShape(CollisionShape collisionShape);
55  float GetMass();
62  void SetMass(float mass);
63 
69  void ApplyImpulse(Vector3 impulse);
75  void ApplyForce(Vector3 force);
76 
82  bool GetCharacter();
87  void SetCharacter(bool character);
88 
89  virtual Rigidbody *Create();
90  virtual Rigidbody *Duplicate();
91  virtual Rigidbody *Instance();
92 private:
93  bool character = false;
94  btRigidBody *btBody;
95  btCollisionShape *collisionShape;
96  float mass = 1.0f;
97 
98  friend class World;
99 };
100 
101 class RigidbodyMotionState : public btMotionState {
102 public:
103  RigidbodyMotionState(Rigidbody *rigidbody);
104  virtual void getWorldTransform(btTransform &worldTrans) const;
105  virtual void setWorldTransform(const btTransform &worldTrans);
106 private:
107  Rigidbody *rigidbody;
108 };
109 
110 #endif /* RIGIDBODY_H */
Definition: CollisionShape.h:34
Definition: Rigidbody.h:101
Definition: Rigidbody.h:35
virtual Rigidbody * Duplicate()
Definition: Rigidbody.cpp:33
virtual Rigidbody * Instance()
Definition: Rigidbody.cpp:42
void ApplyForce(Vector3 force)
Definition: Rigidbody.cpp:87
void SetCharacter(bool character)
Definition: Rigidbody.cpp:97
virtual void Translate(Vector3 offset)
Definition: Rigidbody.cpp:55
void ApplyImpulse(Vector3 impulse)
Definition: Rigidbody.cpp:82
float GetMass()
Definition: Rigidbody.cpp:71
void SetMass(float mass)
Definition: Rigidbody.cpp:75
virtual Rigidbody * Create()
Definition: Rigidbody.cpp:29
bool GetCharacter()
Definition: Rigidbody.cpp:93
void SetCollisionShape(CollisionShape collisionShape)
Definition: Rigidbody.cpp:64
Definition: Spatial.h:35
Definition: World.h:8