Orange/include/Orange/Math/Common.h

23 lines
739 B
C++

#pragma once
#include <Orange/Math/Angle.h>
#include <math.h>
namespace orange::Math
{
inline float sin(const Radian& theta) { return sinf(static_cast<float>(theta)); }
inline float cos(const Radian& theta) { return cosf(static_cast<float>(theta)); }
inline float tan(const Radian& theta) { return tanf(static_cast<float>(theta)); }
inline Radian asin(float a) { return Radian(asinf(a)); }
inline Radian acos(float a) { return Radian(acosf(a)); }
inline Radian atan(float a) { return Radian(atanf(a)); }
inline Radian atan2(float y, float x) { return Radian(atan2f(y, x)); }
template <typename T>
constexpr T kroneckerDelta(const T& i, const T& j)
{
return i == j ? T{1} : T{0};
}
}