8#include "../Entity/ComponentContainer.hpp"
20class btBroadphaseInterface;
21class btDefaultCollisionConfiguration;
22class btCollisionDispatcher;
23class btSequentialImpulseConstraintSolver;
24class btDiscreteDynamicsWorld;
36 void Update(
float deltaTime);
251 glm::vec3 gravity = glm::vec3(0.f, -9.82f, 0.f);
256 btBroadphaseInterface* broadphase =
nullptr;
257 btDefaultCollisionConfiguration* collisionConfiguration =
nullptr;
258 btCollisionDispatcher* dispatcher =
nullptr;
259 btSequentialImpulseConstraintSolver* solver =
nullptr;
260 btDiscreteDynamicsWorld* dynamicsWorld =
nullptr;
262 std::shared_ptr<Utility::LockBox<Physics::Trigger>::Key> triggerLockBoxKey;
263 std::vector<::Physics::Trigger*> triggers;
Component that allows interacting with other physics components.
Definition: RigidBody.hpp:19
Stores components.
Definition: ComponentContainer.hpp:7
Entity containing various components.
Definition: Entity.hpp:16
Singleton class that holds all subsystems.
Definition: Managers.hpp:16
Updates the physics of the world.
Definition: PhysicsManager.hpp:28
Utility::LockBox< Physics::Trigger > CreateTrigger(std::shared_ptr< Physics::Shape > shape)
Definition: PhysicsManager.cpp:171
void ForgetTriggerLeave(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object)
Stop listening for when |object| has left |trigger|.
Definition: PhysicsManager.cpp:131
void SetRollingFriction(Component::RigidBody *comp, float friction)
Definition: PhysicsManager.cpp:225
void Update(float deltaTime)
Moves entities and updates the physics component.
Definition: PhysicsManager.cpp:50
void SetGhost(Component::RigidBody *comp, bool ghost)
Enables/disables ghost functionality on a rigid body.
Definition: PhysicsManager.cpp:268
void SetRestitution(Component::RigidBody *comp, float cor)
Set the restitution (bounciness) of a Component::RigidBody component.
Definition: PhysicsManager.cpp:233
void OnTriggerRetain(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object, std::function< void()> callback)
Set up listener for when |object| is intersecting |trigger|.
Definition: PhysicsManager.cpp:117
void ForgetTriggerRetain(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object)
Stop listening for when |object| is intersecting |trigger|.
Definition: PhysicsManager.cpp:122
void ClearKilledComponents()
Remove all killed components.
Definition: PhysicsManager.cpp:292
Component::RigidBody * CreateRigidBody(Entity *owner)
Create rigid body component.
Definition: PhysicsManager.cpp:135
void ForgetTriggerEnter(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object)
Stop listening for when |object| has entered |trigger|.
Definition: PhysicsManager.cpp:113
void MakeKinematic(Component::RigidBody *comp)
Definition: PhysicsManager.cpp:245
void SetFriction(Component::RigidBody *comp, float friction)
Set the friction coefficient of a Component::RigidBody component.
Definition: PhysicsManager.cpp:221
void SetMass(Component::RigidBody *comp, float mass)
Set the mass of a Component::RigidBody component.
Definition: PhysicsManager.cpp:214
const std::vector< Component::Shape * > & GetShapeComponents() const
Get all shape components.
Definition: PhysicsManager.cpp:288
btDiscreteDynamicsWorld * GetDynamicsWorld()
Get the Bullet dynamics world.
Definition: PhysicsManager.cpp:302
void UpdateEntityTransforms()
Definition: PhysicsManager.cpp:94
void SetAngularDamping(Component::RigidBody *comp, float damping)
Set the angular damping factor of a Component::RigidBody component.
Definition: PhysicsManager.cpp:241
void ReleaseTriggerVolume(Utility::LockBox< Physics::Trigger > &&trigger)
Definition: PhysicsManager.cpp:179
void ForceTransformSync(Component::RigidBody *comp)
Definition: PhysicsManager.cpp:280
void OnTriggerEnter(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object, std::function< void()> callback)
Set up listener for when |object| has entered |trigger|.
Definition: PhysicsManager.cpp:108
Component::Shape * CreateShape(Entity *owner)
Create a component that represents a physical shape.
Definition: PhysicsManager.cpp:151
void SetLinearDamping(Component::RigidBody *comp, float damping)
Set the linear damping factor of a Component::RigidBody component.
Definition: PhysicsManager.cpp:237
void SetSpinningFriction(Component::RigidBody *comp, float friction)
Definition: PhysicsManager.cpp:229
void HaltMovement(Component::RigidBody *comp)
Halts movement of a kinematic rigid body.
Definition: PhysicsManager.cpp:284
void MakeDynamic(Component::RigidBody *comp)
Turn a rigid body into a dynamic object.
Definition: PhysicsManager.cpp:257
void SetShape(Component::Shape *comp, std::shared_ptr<::Physics::Shape > shape)
Set the shape of a given Component::Shape component.
Definition: PhysicsManager.cpp:198
void SetPosition(Utility::LockBox< Physics::Trigger > trigger, const glm::vec3 &position)
Set the position of a trigger volume.
Definition: PhysicsManager.cpp:194
float GetMass(Component::RigidBody *comp)
Get the mass of a rigid body component.
Definition: PhysicsManager.cpp:206
void OnTriggerLeave(Utility::LockBox< Physics::Trigger > trigger, Component::RigidBody *object, std::function< void()> callback)
Set up listener for when |object| has left |trigger|.
Definition: PhysicsManager.cpp:126
Definition: LockBox.hpp:16
Definition: BoxShapeEditor.hpp:5
Definition: IShapeEditor.hpp:7