| 12345678910111213141516171819202122232425262728293031 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #pragma once
- #include "BsCorePrerequisites.h"
- #include "BsModule.h"
- namespace BansheeEngine
- {
- class BS_CORE_EXPORT Physics : public Module<Physics>
- {
- public:
- Physics();
- virtual ~Physics() { }
- virtual void update() = 0;
- virtual SPtr<PhysicsMaterial> createMaterial(float staticFriction, float dynamicFriction, float restitution) = 0;
- void toggleCollision(UINT64 groupA, UINT64 groupB, bool enabled);
- bool isCollisionEnabled(UINT64 groupA, UINT64 groupB) const;
- static const UINT64 CollisionMapSize = 64;
- protected:
- mutable Mutex mMutex;
- bool mCollisionMap[CollisionMapSize][CollisionMapSize];
- };
- /** Provides easier access to Physics. */
- BS_CORE_EXPORT Physics& gPhysics();
- }
|