mirror of
https://github.com/HowestDAE/dae16-VerhulstBram.git
synced 2025-12-16 21:11:47 +01:00
Added a (temp) collision solver for Axis-Aligned rectangles
This commit is contained in:
@@ -6,6 +6,15 @@ namespace utils
|
||||
{
|
||||
const float g_Pi{ 3.1415926535f };
|
||||
|
||||
struct MovingRectf
|
||||
{
|
||||
Point2f bottomLeft;
|
||||
float width;
|
||||
float height;
|
||||
|
||||
Point2f velocity;
|
||||
};
|
||||
|
||||
#pragma region OpenGLDrawFunctionality
|
||||
|
||||
void SetColor( const Color4f& color );
|
||||
@@ -75,6 +84,7 @@ namespace utils
|
||||
bool IsOverlapping( const Circlef& c1, const Circlef& c2 );
|
||||
bool IsOverlapping( const std::vector<Point2f>& vertices, const Circlef& c );
|
||||
bool IsOverlapping( const Point2f* vertices, size_t nrVertices, const Circlef& c );
|
||||
|
||||
bool Raycast( const Point2f* vertices, const size_t nrVertices, const Point2f& rayP1, const Point2f& rayP2, HitInfo& hitInfo );
|
||||
bool Raycast( const std::vector<Point2f>& vertices, const Point2f& rayP1, const Point2f& rayP2, HitInfo& hitInfo );
|
||||
|
||||
@@ -82,8 +92,19 @@ namespace utils
|
||||
float DistPointLineSegment(const Point2f& p, const Point2f& a, const Point2f& b);
|
||||
bool IsPointOnLineSegment(const Point2f& p, const Point2f& a, const Point2f& b);
|
||||
bool IntersectRectLine(const Rectf& r, const Point2f& p1, const Point2f& p2, float& intersectMin, float& intersectMax);
|
||||
bool IsRectInRect(const Rectf& r1, const Rectf& r2);
|
||||
|
||||
bool RayVsRect(const Point2f& rayOrigin, const Point2f& rayDir, const Rectf& target,
|
||||
Point2f& contactPoint, Point2f& contactNormal, float& contactTime);
|
||||
|
||||
bool DynamicRectVsRect(const MovingRectf& in, const Rectf& target, Point2f& contactPoint, Point2f& contactNormal, float& contactTime, float dt);
|
||||
|
||||
float DotProduct(const Point2f& a, const Point2f& b);
|
||||
|
||||
int randRange(int min, int max);
|
||||
#pragma endregion CollisionFunctionality
|
||||
|
||||
bool isKeyDown(SDL_Keycode keycode);
|
||||
bool isMouseDown(int button);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user