BsPhysics.h 986 B

12345678910111213141516171819202122232425262728293031
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. #include "BsModule.h"
  6. namespace BansheeEngine
  7. {
  8. class BS_CORE_EXPORT Physics : public Module<Physics>
  9. {
  10. public:
  11. Physics();
  12. virtual ~Physics() { }
  13. virtual void update() = 0;
  14. virtual SPtr<PhysicsMaterial> createMaterial(float staticFriction, float dynamicFriction, float restitution) = 0;
  15. void toggleCollision(UINT64 groupA, UINT64 groupB, bool enabled);
  16. bool isCollisionEnabled(UINT64 groupA, UINT64 groupB) const;
  17. static const UINT64 CollisionMapSize = 64;
  18. protected:
  19. mutable Mutex mMutex;
  20. bool mCollisionMap[CollisionMapSize][CollisionMapSize];
  21. };
  22. /** Provides easier access to Physics. */
  23. BS_CORE_EXPORT Physics& gPhysics();
  24. }