3#include <Foundation/Math/Declarations.h>
12 PL_DECLARE_POD_TYPE();
15 template <
typename Type>
16 constexpr static PL_ALWAYS_INLINE Type DegToRadMultiplier();
19 template <
typename Type>
20 constexpr static PL_ALWAYS_INLINE Type RadToDegMultiplier();
23 template <
typename Type>
24 constexpr static Type DegToRad(Type f);
27 template <
typename Type>
28 constexpr static Type RadToDeg(Type f);
34 [[nodiscard]]
constexpr static plAngle MakeFromDegree(
float fDegree);
37 [[nodiscard]]
constexpr static plAngle MakeFromRadian(
float fRadian);
46 constexpr float GetDegree()
const;
49 constexpr float GetRadian()
const;
52 PL_ALWAYS_INLINE
void SetRadian(
float fRad) { m_fRadian = fRad; };
56 void NormalizeRange();
60 plAngle GetNormalizedRange()
const;
74 constexpr plAngle operator-()
const;
85 constexpr bool operator==(
const plAngle& r)
const;
86 constexpr bool operator!=(
const plAngle& r)
const;
89 constexpr bool operator<(
const plAngle& r)
const;
90 constexpr bool operator>(
const plAngle& r)
const;
91 constexpr bool operator<=(
const plAngle& r)
const;
92 constexpr bool operator>=(
const plAngle& r)
const;
98 constexpr explicit plAngle(
float fRadian)
107 template <
typename Type>
108 constexpr static Type
Pi();
123#include <Foundation/Math/Implementation/Angle_inl.h>
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
constexpr plAngle()
Standard constructor, initializing with 0.
Definition Angle.h:40
PL_ALWAYS_INLINE void SetRadian(float fRad)
Sets the radian value. (No need for any conversion)
Definition Angle.h:52
static constexpr plAngle MakeZero()
Returns a zero initialized angle. Same as a default constructed object.
Definition Angle.h:31
constexpr TYPE Pi()
Returns the natural constant Pi.