InventoryGame / utils.h
utils.h
Raw
#pragma once
#include "structs.h"
#include <string>

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);
}