31 CollisionWorld(std::unordered_map<std::uint64_t, CollisionBody*> bodies, std::vector<Solver*> solvers);
70 void SolveCollisions(
const std::vector<Collision>& collisions,
float deltaTime)
const;
85 void FindCollisions(std::uint64_t firstId, std::uint64_t secondId, std::vector<Collision>& collisions, std::vector<Collision>& triggers);
88 std::unordered_map<std::uint64_t, CollisionBody*>
_bodies;
Contains the BroadPhaseGrid class.
Contains the CollisionBody struct.
Contains the Solver struct.
A grid in which the physical object are placed in. This is used to optimize performance by only check...
Definition BroadPhaseGrid.hpp:27
A body that can receive collisions.
Definition CollisionBody.hpp:26
Represents a world where collisions can happen. It does not have dynamics, for this you will need the...
Definition CollisionWorld.hpp:28
void RemoveSolver(Solver *solver)
Removes the solver from the world.
Definition CollisionWorld.cpp:40
void FindCollisions(std::uint64_t firstId, std::uint64_t secondId, std::vector< Collision > &collisions, std::vector< Collision > &triggers)
Definition CollisionWorld.cpp:130
void SendCollisionCallbacks(std::vector< Collision > &collisions, float deltaTime) const
Calls the callbacks of all the bodies in each collisions.
Definition CollisionWorld.cpp:64
std::unordered_map< std::uint64_t, CollisionBody * > _bodies
Definition CollisionWorld.hpp:88
BroadPhaseGrid _grid
Definition CollisionWorld.hpp:90
void AddSolver(Solver *solver)
Adds a solver to the world.
Definition CollisionWorld.cpp:35
std::vector< Solver * > _solvers
Definition CollisionWorld.hpp:89
std::function< void(Collision &, float) _onCollision)
Definition CollisionWorld.hpp:92
CollisionWorld()
Definition CollisionWorld.cpp:10
bool useSpacePartitioning
Definition CollisionWorld.hpp:33
void RemoveCollisionBody(const CollisionBody *body)
Removes a collision body to the world.
Definition CollisionWorld.cpp:28
void AddCollisionBody(CollisionBody *body)
Adds a collision body to the world.
Definition CollisionWorld.cpp:21
void ResolveCollisions(float deltaTime)
Resolves all the collisions that happened in this world.
Definition CollisionWorld.cpp:76
void SolveCollisions(const std::vector< Collision > &collisions, float deltaTime) const
Solves the collisions with the provided solvers.
Definition CollisionWorld.cpp:56
void SetCollisionCallback(const std::function< void(Collision &, float)> &callback)
Sets the collision callback of this world.
Definition CollisionWorld.cpp:51
Generic class for all solvers.
Definition Solver.hpp:24
Definition BroadPhaseGrid.hpp:18
Struct representing a collision.
Definition Collision.hpp:21