PolyPhysicsScene.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * PolyPhysicsScene.h
  3. * Modules
  4. *
  5. * Created by Ivan Safrin on 12/22/10.
  6. * Copyright 2010 Local Projects. All rights reserved.
  7. *
  8. */
  9. // @package SceneDynamics
  10. #pragma once
  11. #include "btBulletCollisionCommon.h"
  12. #include "btBulletDynamicsCommon.h"
  13. #include "PolyLogger.h"
  14. #include "PolyGlobals.h"
  15. #include "PolyCollisionScene.h"
  16. #include "PolyVector3.h"
  17. #include "PolyPhysicsSceneEntity.h"
  18. #include <vector>
  19. using std::vector;
  20. namespace Polycode {
  21. class _PolyExport PhysicsScene : public CollisionScene {
  22. public:
  23. PhysicsScene();
  24. virtual ~PhysicsScene();
  25. void Update();
  26. PhysicsSceneEntity *addPhysicsChild(SceneEntity *newEntity, int type=0, float mass = 0.0f, float friction=1, float restitution=0, int group=1);
  27. PhysicsSceneEntity *trackPhysicsChild(SceneEntity *newEntity, int type=0, float mass = 0.0f, float friction=1, float restitution=0, int group=1);
  28. PhysicsCharacter *addCharacterChild(SceneEntity *newEntity, float mass, float friction, float stepSize, int group = 1);
  29. protected:
  30. void initPhysicsScene();
  31. btDiscreteDynamicsWorld* physicsWorld;
  32. vector<PhysicsSceneEntity*> physicsChildren;
  33. };
  34. }