37 BroadPhaseGrid(
float minX,
float maxX,
float minY,
float maxY,
float cellSize);
43 void Update(
const std::unordered_map<std::uint64_t, CollisionBody*>& bodies);
50 [[nodiscard]] std::vector<std::pair<std::uint64_t, std::uint64_t>>
GetCollisionPairs()
const;
53 std::vector<std::vector<std::vector<CollisionBody*>>> _grid;
57 std::size_t _gridWidth;
58 std::size_t _gridHeight;
60 static bool HasBeenChecked(
61 const std::unordered_multimap<CollisionBody*, CollisionBody*>& checkedCollisions,
62 const std::pair<CollisionBody*, CollisionBody*>& bodyPair);
Contains the CollisionBody struct.
A grid in which the physical object are placed in. This is used to optimize performance by only check...
Definition BroadPhaseGrid.hpp:27
std::vector< std::pair< std::uint64_t, std::uint64_t > > GetCollisionPairs() const
Find all the pair of objects that are in the same cell. Doesn't contain any duplicates.
Definition BroadPhaseGrid.cpp:67
BroadPhaseGrid(float minX, float maxX, float minY, float maxY, float cellSize)
Constructs a new grid.
Definition BroadPhaseGrid.cpp:8
void Update(const std::unordered_map< std::uint64_t, CollisionBody * > &bodies)
Updates the layout of the grid.
Definition BroadPhaseGrid.cpp:21
Definition BroadPhaseGrid.hpp:18
A struct representing a 2D Vector.
Definition Vector2.hpp:21