Remove Point2f, replace with Vector2f

This commit is contained in:
Bram Verhulst
2024-04-17 13:54:48 +02:00
parent 64e96ab209
commit db83ae5e13
42 changed files with 494 additions and 634 deletions

View File

@@ -22,25 +22,25 @@ namespace Collision
struct CollisionRect
{
CollisionRect() = default;
CollisionRect(const Point2f& pos, const Point2f& size) : pos(pos), size(size) {}
CollisionRect(const Point2f& pos, const Point2f& size, const Point2f& vel) : pos(pos), size(size), vel(vel) {}
Point2f pos;
Point2f size;
Point2f vel;
CollisionRect(const Vector2f& pos, const Vector2f& size) : pos(pos), size(size) {}
CollisionRect(const Vector2f& pos, const Vector2f& size, const Vector2f& vel) : pos(pos), size(size), vel(vel) {}
Vector2f pos;
Vector2f size;
Vector2f vel;
std::map<CollisionDirection, CollisionRect*> ContactMap{};
};
struct TileCollisionRect
{
Point2f pos;
Point2f size;
Point2f vel;
Vector2f pos;
Vector2f size;
Vector2f vel;
TileCollisionRect(const Point2f& pos, const Point2f& size, WorldTile* tile);
TileCollisionRect(const Vector2f& pos, const Vector2f& size, WorldTile* tile);
WorldTile* tile;
bool Contains(Point2f point2_f) {
bool Contains(Vector2f point2_f) {
return utils::IsPointInRect(point2_f, Rectf{ pos.x, pos.y, size.x, size.y });
}
@@ -49,13 +49,13 @@ namespace Collision
}
};
bool PointVsRect(const Point2f p, const CollisionRect& r);
bool PointVsRect(const Vector2f p, const CollisionRect& r);
bool RectVsRect(const CollisionRect& r1, const CollisionRect r2);
bool RayVsRect(const Point2f& rayOrigin, const Point2f& rayDirection, const Collision::CollisionRect target, Point2f& contactPoint, Point2f& contactNormal, float& t_HitNear);
bool RayVsRect(const Vector2f& rayOrigin, const Vector2f& rayDirection, const Collision::CollisionRect target, Vector2f& contactPoint, Vector2f& contactNormal, float& t_HitNear);
bool DynamicRectVsRect(const CollisionRect& dynamicRectangle, float ElapsedTime, const CollisionRect& staticRectangle, Point2f& contactPoint, Point2f& contactNormal, float& contactTime);
bool DynamicRectVsRect(const CollisionRect& dynamicRectangle, float ElapsedTime, const CollisionRect& staticRectangle, Vector2f& contactPoint, Vector2f& contactNormal, float& contactTime);
bool ResolveDynamicRectVsRect(CollisionRect& dynamicRectangle, float ElapsedTime, CollisionRect* staticRectangle);