53 const Transform *colliderTransform)
const = 0;
73 const Transform *circleTransform)
const = 0;
83 const Transform *aabbTransform)
const = 0;
116 const Transform *colliderTransform)
const override;
119 const Transform *boxTransform)
const override;
122 const Transform *circleTransform)
const override;
125 const Transform *circleTransform)
const override;
140 [[nodiscard]] std::array<Vector2, 4>
GetVertices()
const;
143 [[nodiscard]]
static std::array<Vector2, 4>
GetAxes(
const std::array<Vector2, 4> &vertices);
163 const Transform *colliderTransform)
const override;
166 const Transform *boxTransform)
const override;
169 const Transform *circleTransform)
const override;
172 const Transform *aabbTransform)
const override;
194 const Transform *colliderTransform)
const override;
196 const Transform *boxTransform)
const override;
198 const Transform *circleTransform)
const override;
200 const Transform *aabbTransform)
const override;
Contains the Manifold class.
Contains the Projection struct.
Contains the Vector2 struct.
An Axis Aligned Bounding Box collider.
Definition Collider.hpp:182
Manifold TestCollision(const Transform *transform, const Collider *collider, const Transform *colliderTransform) const override
Tests the collision against a generic collider.
Definition Collider.cpp:171
float halfHeight
Half of the height of the box.
Definition Collider.hpp:191
Vector2 FindFurthestPoint(const Transform *transform, const Vector2 &direction) const override
Find the furthest point in the specified direction.
Definition Collider.cpp:196
Vector2 GetBoundingBoxSize() const override
Gets the size of the box that surrounds the collider.
Definition Collider.cpp:201
float halfWidth
Half of the width of the box.
Definition Collider.hpp:187
A rotatable box collider.
Definition Collider.hpp:104
Manifold TestCollision(const Transform *transform, const Collider *collider, const Transform *colliderTransform) const override
Tests the collision against a generic collider.
Definition Collider.cpp:14
Vector2 FindFurthestPoint(const Transform *transform, const Vector2 &direction) const override
Find the furthest point in the specified direction.
Definition Collider.cpp:39
float halfHeight
Half of the height of the box.
Definition Collider.hpp:113
float halfWidth
Half of the width of the box.
Definition Collider.hpp:109
std::array< Vector2, 4 > GetTransformedVertices(const Transform &transform) const
Gets the transformed vertices of the box.
Definition Collider.cpp:104
static std::array< Vector2, 4 > GetAxes(const std::array< Vector2, 4 > &vertices)
Definition Collider.cpp:83
std::array< Vector2, 4 > GetVertices() const
Gets the untransformed vertices of the box.
Definition Collider.cpp:57
Vector2 GetBoundingBoxSize() const override
Gets the size of the box that surrounds the collider.
Definition Collider.cpp:99
static Projection Project(const Vector2 &axis, const std::array< Vector2, 4 > &vertices)
Definition Collider.cpp:62
A circle collider.
Definition Collider.hpp:152
Manifold TestCollision(const Transform *transform, const Collider *collider, const Transform *colliderTransform) const override
Tests the collision against a generic collider.
Definition Collider.cpp:135
Vector2 FindFurthestPoint(const Transform *transform, const Vector2 &direction) const override
Find the furthest point in the specified direction.
Definition Collider.cpp:159
Vector2 GetBoundingBoxSize() const override
Gets the size of the box that surrounds the collider.
Definition Collider.cpp:164
float radius
Radius of the circle.
Definition Collider.hpp:157
A pure virtual struct that represents colliders.
Definition Collider.hpp:31
Collider(Collider &&col) noexcept=default
Collider & operator=(const Collider &col)=default
Collider(const Collider &col)=default
virtual ~Collider()=default
virtual Vector2 FindFurthestPoint(const Transform *transform, const Vector2 &direction) const =0
Find the furthest point in the specified direction.
virtual Vector2 GetBoundingBoxSize() const =0
Gets the size of the box that surrounds the collider.
virtual Manifold TestCollision(const Transform *transform, const AabbCollider *collider, const Transform *aabbTransform) const =0
Tests the collision against a aabb collider.
virtual Manifold TestCollision(const Transform *transform, const Collider *collider, const Transform *colliderTransform) const =0
Tests the collision against a generic collider.
virtual Manifold TestCollision(const Transform *transform, const BoxCollider *collider, const Transform *boxTransform) const =0
Tests the collision against a box collider.
Vector2 center
The center of the collider.
Definition Collider.hpp:43
Collider & operator=(Collider &&col)=default
virtual Manifold TestCollision(const Transform *transform, const CircleCollider *collider, const Transform *circleTransform) const =0
Tests the collision against a circle collider.
Definition BroadPhaseGrid.hpp:18
Definition Manifold.hpp:20
Definition Projection.hpp:16
A struct representing a 2D Vector.
Definition Vector2.hpp:21