10static constexpr float JPH_PI = 3.14159265358979323846f;
15 return inV * (JPH_PI / 180.0f);
21 return inV * (180.0f / JPH_PI);
31 while (
inV < -JPH_PI);
33 else if (
inV > JPH_PI)
68 return inV < 0?
T(-1) :
T(1);
75 return (
inV & (
inV - 1)) == 0;
97#if defined(JPH_CPU_X86) || defined(JPH_CPU_WASM)
98 #if defined(JPH_USE_TZCNT)
100 #elif defined(JPH_COMPILER_MSVC)
111#elif defined(JPH_CPU_ARM)
112 #if defined(JPH_COMPILER_MSVC)
121#elif defined(JPH_CPU_E2K)
131#if defined(JPH_CPU_X86) || defined(JPH_CPU_WASM)
132 #if defined(JPH_USE_LZCNT)
134 #elif defined(JPH_COMPILER_MSVC)
145#elif defined(JPH_CPU_ARM)
146 #if defined(JPH_COMPILER_MSVC)
151#elif defined(JPH_CPU_E2K)
161#if defined(JPH_COMPILER_CLANG) || defined(JPH_COMPILER_GCC)
163#elif defined(JPH_COMPILER_MSVC)
164 #if defined(JPH_USE_SSE4_2)
166 #elif defined(JPH_USE_NEON) && (_MSC_VER >= 1930)
172 return (
inValue * 0x01010101) >> 24;
186template <
class To,
class From>
189 static_assert(std::is_trivially_constructible_v<To>);
190 static_assert(
sizeof(
From) ==
sizeof(
To));
std::uint64_t uint64
Definition Core.h:443
unsigned int uint
Definition Core.h:439
#define JPH_NAMESPACE_END
Definition Core.h:367
std::uint32_t uint32
Definition Core.h:442
#define JPH_NAMESPACE_BEGIN
Definition Core.h:361
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
constexpr T Cubed(T inV)
Returns .
Definition Math.h:59
float CenterAngleAroundZero(float inV)
Convert angle in radians to the range .
Definition Math.h:25
constexpr bool IsPowerOf2(T inV)
Check if inV is a power of 2.
Definition Math.h:73
constexpr T Clamp(T inV, T inMin, T inMax)
Clamp a value between two values.
Definition Math.h:45
uint CountBits(uint32 inValue)
Count the number of 1 bits in a value.
Definition Math.h:159
bool IsAligned(T inV, uint64 inAlignment)
Check if inV is inAlignment aligned.
Definition Math.h:88
constexpr float RadiansToDegrees(float inV)
Convert a value from radians to degrees.
Definition Math.h:19
uint CountTrailingZeros(uint32 inValue)
Compute number of trailing zero bits (how many low bits are zero)
Definition Math.h:95
JPH_INLINE To BitCast(const From &inValue)
Definition Math.h:187
uint CountLeadingZeros(uint32 inValue)
Compute the number of leading zero bits (how many high bits are zero)
Definition Math.h:129
uint32 GetNextPowerOf2(uint32 inValue)
Get the next higher power of 2 of a value, or the value itself if the value is already a power of 2.
Definition Math.h:180
constexpr T Square(T inV)
Square a value.
Definition Math.h:52
constexpr T Sign(T inV)
Get the sign of a value.
Definition Math.h:66
T AlignUp(T inV, uint64 inAlignment)
Align inV up to the next inAlignment bytes.
Definition Math.h:80
constexpr float DegreesToRadians(float inV)
Convert a value from degrees to radians.
Definition Math.h:13
AllocateFunction Allocate
Definition Memory.cpp:59