#pragma once #include namespace ly { sf::Vector2f RotationToVector(float rotation); float DegreesToRadians(float degrees); float RadiansToDegrees(float radians); template float GetVectorLength(const sf::Vector2& vector) { return std::sqrt(vector.x * vector.x + vector.y * vector.y); } template sf::Vector2& ScaleVector(sf::Vector2& vectorToScale, float scaleAmount) { vectorToScale.x *= scaleAmount; vectorToScale.y *= scaleAmount; return vectorToScale; } template sf::Vector2& Normalize(sf::Vector2 &vector) { float vectorLength = GetVectorLength(vector); if (vectorLength == 0.f) return sf::Vector2{}; ScaleVector(vector, 1.f/vectorLength); return vector; } }