14 [[nodiscard]]
constexpr static An
17 return An(rad_from_deg(degrees));
20 [[nodiscard]]
constexpr static An
26 [[nodiscard]]
constexpr static An
32 [[nodiscard]]
constexpr static An
42 [[nodiscard]]
constexpr float
45 return deg_from_rad(radians);
48 [[nodiscard]]
constexpr float
54 [[nodiscard]]
constexpr float
71 constexpr explicit An(
float r) : radians(r) {}
73 [[nodiscard]]
static constexpr float
74 deg_from_rad(
float radians)
76 return (180.0f /
pi) * radians;
79 [[nodiscard]]
static constexpr float
80 rad_from_deg(
float degrees)
82 return pi / 180.0f * degrees;
123 constexpr An operator""_deg(
unsigned long long d)
128 constexpr An operator""_deg(
long double d)
134 constexpr An operator""_rad(
long double r)
#define ADD_CATCH_FORMATTER_DEF(TYPE)
An lerp_angle(const An &from, float v, const An &to)
bool operator<(const An &lhs, const An &rhs)
An operator/(const An &lhs, float rhs)
constexpr An quarter_turn
An atan2(float y, float x)
bool operator>(const An &lhs, const An &rhs)
An operator-(const An &lhs, const An &rhs)
bool operator<=(const An &lhs, const An &rhs)
An operator+(const An &lhs, const An &rhs)
An operator*(const An &lhs, float rhs)
bool operator>=(const An &lhs, const An &rhs)
std::string string_from(const An &a)
An angle in both degrees and radians.
void operator-=(const An &rhs)
constexpr float as_degrees() const
void operator+=(const An &rhs)
constexpr float from_percent_of_360() const
static constexpr An from_degrees(float degrees)
void operator/=(float rhs)
static constexpr An from_radians(float radians)
static constexpr An from_percent_of_180(float percent)
static constexpr An from_percent_of_360(float percent)
constexpr float as_radians() const
void operator*=(float rhs)