namespace Math
{
	//------------------------------------------------------------------------------------------------------------------------
	float Minf(const float a, const float b) {
		return (a < b) ? a : b;
	}
	//------------------------------------------------------------------------------------------------------------------------
	float Maxf(const float a, const float b) {
		return (a > b) ? a : b;
	}
	//------------------------------------------------------------------------------------------------------------------------
	int Min(const int a, const int b) {
		return (a < b) ? a : b;
	}
	//------------------------------------------------------------------------------------------------------------------------
	int Max(const int a, const int b) {
		return (a > b) ? a : b;
	}
	//------------------------------------------------------------------------------------------------------------------------
	float Clampf(const float value, const float min, const float max) {
		return (value < min) ? min : ((value > max) ? max : value);
	}
	//------------------------------------------------------------------------------------------------------------------------
	int Clamp(const int value, const int min, const int max) {
		return (value < min) ? min : ((value > max) ? max : value);
	}
	//------------------------------------------------------------------------------------------------------------------------
	float Round(const float value) {
		int a = int(value * 10);
		int b = int(value) * 10;
		if (value < 0) {
			return (a + b >= 5) ? Math::Floor(value) : Math::Ceil(value);
		}
		return (a - b >= 5) ? Math::Ceil(value) : Math::Floor(value);
	}
	//------------------------------------------------------------------------------------------------------------------------
	int RoundToInt(const float value) {
		return int(Round(value));
	}
	//------------------------------------------------------------------------------------------------------------------------
	// Converts an Angle to a kVec3 using x,y as direction with magnitude of 1
	//------------------------------------------------------------------------------------------------------------------------
	kVec3 AngleToDirectionXY(const float r) {
		// float r = Math::Deg2Rad(value);
		return kVec3(Math::Sin(r), Math::Cos(r), 0.0f);
	}
	//------------------------------------------------------------------------------------------------------------------------
}
