PolyPhysicsSceneEntity.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "PolyLogger.h"
  3. #include "PolyGlobals.h"
  4. #include "PolySceneEntity.h"
  5. #include "PolyCollisionSceneEntity.h"
  6. #include "btBulletCollisionCommon.h"
  7. #include "btBulletDynamicsCommon.h"
  8. #include "PolyCoreServices.h"
  9. #include "PolySceneMesh.h"
  10. #include "BulletDynamics/Character/btKinematicCharacterController.h"
  11. #include "BulletCollision/CollisionDispatch/btGhostObject.h"
  12. //class btKinematicCharacterController;
  13. namespace Polycode {
  14. class _PolyExport PhysicsSceneEntity : public CollisionSceneEntity {
  15. public:
  16. PhysicsSceneEntity(SceneEntity *entity, int type, float mass, float friction, float restitution);
  17. virtual ~PhysicsSceneEntity();
  18. SceneEntity *getSceneEntity();
  19. virtual void Update();
  20. void setFriction(float friction);
  21. int getType() { return type; }
  22. static const int SHAPE_BOX = 0;
  23. static const int SHAPE_TERRAIN = 1;
  24. static const int SHAPE_SPHERE = 2;
  25. static const int SHAPE_MESH = 3;
  26. static const int CHARACTER_CONTROLLER = 4;
  27. static const int SHAPE_CAPSULE = 5;
  28. static const int SHAPE_PLANE = 6;
  29. bool enabled;
  30. btRigidBody* rigidBody;
  31. protected:
  32. float mass;
  33. };
  34. class _PolyExport PhysicsCharacter : public PhysicsSceneEntity {
  35. public:
  36. PhysicsCharacter(SceneEntity *entity, float mass, float friction, float stepSize);
  37. virtual ~PhysicsCharacter();
  38. void setWalkDirection(Vector3 direction);
  39. void jump();
  40. virtual void Update();
  41. btKinematicCharacterController *character;
  42. btPairCachingGhostObject *ghostObject;
  43. protected:
  44. };
  45. }