#pragma once #include "structs.h" #include namespace utils { const float g_Pi{ 3.14159f }; void FillRect(float left, float bottom, float width, float height); void FillRect(const Point2f& point, float width, float height); void FillEllipse(float centerX, float centerY, float radX, float radY); void FillEllipse(const Point2f& point, float radX, float radY); void DrawRectOutline(float left, float bottom, float width, float height); float GetDistance(const Point2f& p1, const Point2f& p2); bool IsPointInCircle(const Point2f& point, const Circlef& circle); bool IsPointInRect(const Point2f& point, const Rectf& rect); bool IsOverlapping(const Rectf& rect1, const Rectf& rect2); bool IsOverlapping(const Circlef& circle1, const Circlef& circle2); void DrawVector(const Vector2f& vector, const Point2f& startPoint = { 0, 0 }); std::string ToString(const Vector2f& vector); Vector2f Add(const Vector2f& vector1, const Vector2f& vector2); Vector2f Substract(const Vector2f& vector1, const Vector2f& vector2); float DotProduct(const Vector2f& vector1, const Vector2f& vector2); float CrossProduct(const Vector2f& vector1, const Vector2f& vector2); float GetLength(const Vector2f& vector); Vector2f Scale(const Vector2f& vector, float scalar); Vector2f Normalize(const Vector2f& vector); float AngleBetween(const Vector2f& vector1, const Vector2f& vector2); bool AreEqual(const Vector2f& vector1, const Vector2f& vector2); int GetIndex(int rowIdx, int colIdx, int nrCols); }