BsPhysics.cpp 686 B

12345678910111213141516171819202122232425262728293031
  1. #include "BsPhysics.h"
  2. #include "BsPhysicsMaterial.h"
  3. namespace BansheeEngine
  4. {
  5. Physics::Physics()
  6. {
  7. memset(mCollisionMap, 1, CollisionMapSize * CollisionMapSize * sizeof(bool));
  8. }
  9. void Physics::toggleCollision(UINT64 groupA, UINT64 groupB, bool enabled)
  10. {
  11. assert(groupA < CollisionMapSize && groupB < CollisionMapSize);
  12. mMutex.lock();
  13. mCollisionMap[groupA][groupB] = enabled;
  14. }
  15. bool Physics::isCollisionEnabled(UINT64 groupA, UINT64 groupB) const
  16. {
  17. assert(groupA < CollisionMapSize && groupB < CollisionMapSize);
  18. mMutex.lock();
  19. return mCollisionMap[groupA][groupB];
  20. }
  21. Physics& gPhysics()
  22. {
  23. return Physics::instance();
  24. }
  25. }