66 #define orxLERP(A, B, T) ((A) + ((T) * ((B) - (A)))) 74 #define orxMIN(A, B) (((A) > (B)) ? (B) : (A)) 81 #define orxMAX(A, B) (((A) < (B)) ? (B) : (A)) 89 #define orxCLAMP(V, MIN, MAX) orxMAX(orxMIN(V, MAX), MIN) 95 #define orxF2U(V) ((orxU32) (V)) 101 #define orxF2S(V) ((orxS32) (V)) 107 #define orxU2F(V) ((orxFLOAT)(V)) 113 #define orxS2F(V) ((orxFLOAT)(V)) 222 u32Result = __popcnt(_u32Value);
227 u32Result = (orxU32)__builtin_popcount(_u32Value);
249 _BitScanForward((
unsigned long *)&u32Result, _u32Value);
254 u32Result = (orxU32)__builtin_ctz(_u32Value);
278 _BitScanForward64((
unsigned long *)&u32Result, _u64Value);
290 u32Result = (orxU32)__builtin_ctzll(_u64Value);
325 u32Result = _u32Value - 1;
326 u32Result = u32Result | (u32Result >> 1);
327 u32Result = u32Result | (u32Result >> 2);
328 u32Result = u32Result | (u32Result >> 4);
329 u32Result = u32Result | (u32Result >> 8);
330 u32Result = u32Result | (u32Result >> 16);
351 orxFLOAT fTemp, fResult;
354 fTemp = (_fValue - _fMin) / (_fMax - _fMin);
358 fResult = fTemp * fTemp * (orx2F(3.0f) - (orx2F(2.0f) * fTemp));
372 orxFLOAT fTemp, fResult;
375 fTemp = (_fValue - _fMin) / (_fMax - _fMin);
379 fResult = fTemp * fTemp * fTemp * (fTemp * ((fTemp * orx2F(6.0f)) - orx2F(15.0f)) + orx2F(10.0f));
388 #define orxMATH_KF_SQRT_2 orx2F(1.414213562f) 389 #define orxMATH_KF_EPSILON orx2F(0.0001f) 390 #define orxMATH_KF_TINY_EPSILON orx2F(1.0e-037f) 391 #define orxMATH_KF_MAX orx2F(3.402823466e+38F) 392 #define orxMATH_KF_2_PI orx2F(6.283185307f) 393 #define orxMATH_KF_PI orx2F(3.141592654f) 394 #define orxMATH_KF_PI_BY_2 orx2F(1.570796327f) 395 #define orxMATH_KF_PI_BY_4 orx2F(0.785398163f) 396 #define orxMATH_KF_DEG_TO_RAD orx2F(3.141592654f / 180.0f) 397 #define orxMATH_KF_RAD_TO_DEG orx2F(180.0f / 3.141592654f) 411 fResult = sinf(_fOp);
426 fResult = cosf(_fOp);
441 fResult = tanf(_fOp);
456 fResult = acosf(_fOp);
471 fResult = asinf(_fOp);
487 fResult = atan2f(_fOp1, _fOp2);
505 fResult = sqrtf(_fOp);
520 fResult = floorf(_fOp);
535 fResult = ceilf(_fOp);
552 fResult = floorf(_fOp + orx2F(0.5f));
557 fResult = rintf(_fOp);
570 static orxINLINE orxFLOAT
orxMath_Mod(orxFLOAT _fOp1, orxFLOAT _fOp2)
575 fResult = fmodf(_fOp1, _fOp2);
586 static orxINLINE orxFLOAT
orxMath_Pow(orxFLOAT _fOp, orxFLOAT _fExp)
591 fResult = powf(_fOp, _fExp);
606 fResult = fabsf(_fOp);
static orxINLINE orxFLOAT orxMath_Ceil(orxFLOAT _fOp)
static orxINLINE orxFLOAT orxMath_SmoothStep(orxFLOAT _fMin, orxFLOAT _fMax, orxFLOAT _fValue)
static orxINLINE orxFLOAT orxMath_Round(orxFLOAT _fOp)
static orxINLINE orxU32 orxMath_GetBitCount(orxU32 _u32Value)
static orxINLINE orxU32 orxMath_GetTrailingZeroCount(orxU32 _u32Value)
static orxINLINE orxFLOAT orxMath_ASin(orxFLOAT _fOp)
static const orxFLOAT orxFLOAT_1
orxDLLAPI orxFLOAT orxFASTCALL orxMath_GetSteppedRandomFloat(orxFLOAT _fMin, orxFLOAT _fMax, orxFLOAT _fStep)
orxDLLAPI orxU64 orxFASTCALL orxMath_GetSteppedRandomU64(orxU64 _u64Min, orxU64 _u64Max, orxU64 _u64Step)
#define orxCLAMP(V, MIN, MAX)
static orxINLINE orxFLOAT orxMath_Sqrt(orxFLOAT _fOp)
orxDLLAPI orxS32 orxFASTCALL orxMath_GetRandomS32(orxS32 _s32Min, orxS32 _s32Max)
static orxINLINE orxFLOAT orxMath_Sin(orxFLOAT _fOp)
orxDLLAPI orxS32 orxFASTCALL orxMath_GetSteppedRandomS32(orxS32 _s32Min, orxS32 _s32Max, orxS32 _s32Step)
static orxINLINE orxFLOAT orxMath_Floor(orxFLOAT _fOp)
static orxINLINE orxFLOAT orxMath_Abs(orxFLOAT _fOp)
static orxINLINE orxU32 orxMath_GetNextPowerOfTwo(orxU32 _u32Value)
orxDLLAPI orxU32 orxFASTCALL orxMath_GetSteppedRandomU32(orxU32 _u32Min, orxU32 _u32Max, orxU32 _u32Step)
orxDLLAPI orxS64 orxFASTCALL orxMath_GetSteppedRandomS64(orxS64 _s64Min, orxS64 _s64Max, orxS64 _s64Step)
static orxINLINE orxFLOAT orxMath_ACos(orxFLOAT _fOp)
static orxINLINE orxU32 orxMath_GetTrailingZeroCount64(orxU64 _u64Value)
orxDLLAPI void orxFASTCALL orxMath_SetRandomSeeds(const orxU32 _au32Seeds[4])
static orxINLINE orxFLOAT orxMath_Cos(orxFLOAT _fOp)
orxDLLAPI void orxFASTCALL orxMath_GetRandomSeeds(orxU32 _au32Seeds[4])
orxDLLAPI void orxFASTCALL orxMath_InitRandom(orxU32 _u32Seed)
static orxINLINE orxFLOAT orxMath_Mod(orxFLOAT _fOp1, orxFLOAT _fOp2)
orxDLLAPI orxU64 orxFASTCALL orxMath_GetRandomU64(orxU64 _u64Min, orxU64 _u64Max)
static orxINLINE orxFLOAT orxMath_SmootherStep(orxFLOAT _fMin, orxFLOAT _fMax, orxFLOAT _fValue)
orxDLLAPI orxFLOAT orxFASTCALL orxMath_GetRandomFloat(orxFLOAT _fMin, orxFLOAT _fMax)
orxDLLAPI orxS64 orxFASTCALL orxMath_GetRandomS64(orxS64 _s64Min, orxS64 _s64Max)
static orxINLINE orxFLOAT orxMath_Pow(orxFLOAT _fOp, orxFLOAT _fExp)
static const orxFLOAT orxFLOAT_0
static orxINLINE orxFLOAT orxMath_ATan(orxFLOAT _fOp1, orxFLOAT _fOp2)
orxDLLAPI orxU32 orxFASTCALL orxMath_GetRandomU32(orxU32 _u32Min, orxU32 _u32Max)
static orxINLINE orxFLOAT orxMath_Tan(orxFLOAT _fOp)
#define orxASSERT(TEST,...)
static orxINLINE orxBOOL orxMath_IsPowerOfTwo(orxU32 _u32Value)