TalanSoft Toolkits  201707
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Typedefs | Enumerations | Functions
niLang Math

Detailed Description

Classes

struct  Complex< T >
 Complex number template. More...
 
struct  sDecomposedMatrix< T >
 Decomposed matrix template. More...
 
struct  FPUMode
 Utility call to control the x87 FPU modes. More...
 
struct  sRect< T >
 Rect template class. More...
 
struct  XMatrix< N, M, T >
 

Typedefs

typedef Complex< tF32 > Complexf
 tF32 complex number More...
 
typedef Complex< tF64 > Complexd
 tF64 complex number More...
 
typedef sDecomposedMatrix< tF32 > sDecomposedMatrixf
 Decomposed matrix tF32. More...
 
typedef sDecomposedMatrix< tF64 > sDecomposedMatrixd
 Decomposed matrix tF64. More...
 
typedef sRect< tI32 > sRecti
 Int Rect. More...
 
typedef sRect< tF32 > sRectf
 Float Rect. More...
 
typedef astl::vector< sVec2f > tVec2fVec
 
typedef tVec2fVec::iterator tVec2fVecIt
 
typedef tVec2fVec::const_iterator tVec2fVecCIt
 
typedef astl::vector< sVec2i > tVec2iVec
 
typedef tVec2iVec::iterator tVec2iVecIt
 
typedef tVec2iVec::const_iterator tVec2iVecCIt
 
typedef astl::vector< sVec3f > tVec3fVec
 
typedef tVec3fVec::iterator tVec3fVecIt
 
typedef tVec3fVec::const_iterator tVec3fVecCIt
 
typedef astl::vector< sVec4f > tVec4fVec
 
typedef tVec4fVec::iterator tVec4fVecIt
 
typedef tVec4fVec::const_iterator tVec4fVecCIt
 
typedef astl::vector< sPlanef > tPlanefVec
 
typedef tPlanefVec::iterator tPlanefVecIt
 
typedef tPlanefVec::const_iterator tPlanefVecCIt
 
typedef astl::vector< sMatrixf > tMatrixfVec
 sMatrixf vector. More...
 
typedef tMatrixfVec::iterator tMatrixfVecIt
 sMatrixf vector iterator. More...
 
typedef tMatrixfVec::const_iterator tMatrixfVecCIt
 sMatrixf vector constant iterator. More...
 
typedef
tMatrixfVec::reverse_iterator 
tMatrixfVecRIt
 sMatrixf vector reverse iterator. More...
 
typedef
tMatrixfVec::const_reverse_iterator 
tMatrixfVecCRIt
 sMatrixf vector constant reverse iterator. More...
 
typedef sMatrix< tF64 > sMatrixd
 tF64 matrix. More...
 
typedef astl::vector< sMatrixd > tMatrixdVec
 sMatrixd vector. More...
 
typedef tMatrixdVec::iterator tMatrixdVecIt
 sMatrixd vector iterator. More...
 
typedef tMatrixdVec::const_iterator tMatrixdVecCIt
 sMatrixd vector constant iterator. More...
 
typedef
tMatrixdVec::reverse_iterator 
tMatrixdVecRIt
 sMatrixd vector reverse iterator. More...
 
typedef
tMatrixdVec::const_reverse_iterator 
tMatrixdVecCRIt
 sMatrixd vector constant reverse iterator. More...
 
typedef XMatrix< 2, 2, tI32 > XMatrix22l
 
typedef XMatrix< 2, 3, tI32 > XMatrix23l
 
typedef XMatrix< 3, 3, tI32 > XMatrix33l
 
typedef XMatrix< 4, 4, tI32 > XMatrix44l
 
typedef XMatrix< 2, 1, tI32 > XVec2l
 
typedef XMatrix< 3, 1, tI32 > XVec3l
 
typedef XMatrix< 4, 1, tI32 > XVec4l
 
typedef XMatrix< 2, 2, tF32 > XMatrix22f
 
typedef XMatrix< 2, 3, tF32 > XMatrix23f
 
typedef XMatrix< 3, 3, tF32 > XMatrix33f
 
typedef XMatrix< 4, 4, tF32 > XMatrix44f
 
typedef XMatrix< 2, 1, tF32 > XVec2f
 
typedef XMatrix< 3, 1, tF32 > XVec3f
 
typedef XMatrix< 4, 1, tF32 > XVec4f
 
typedef XMatrix< 2, 2, tF64 > XMatrix22d
 
typedef XMatrix< 2, 3, tF64 > XMatrix23d
 
typedef XMatrix< 3, 3, tF64 > XMatrix33d
 
typedef XMatrix< 4, 4, tF64 > XMatrix44d
 
typedef XMatrix< 2, 1, tF64 > XVec2d
 
typedef XMatrix< 3, 1, tF64 > XVec3d
 
typedef XMatrix< 4, 1, tF64 > XVec4d
 

Enumerations

enum  eFPUPrecision {
  eFPUPrecision_24,
  eFPUPrecision_53,
  eFPUPrecision_64,
  eFPUPrecision_Mask,
  eFPUPrecision_Lowest,
  eFPUPrecision_Highest,
  eFPUPrecision_ForceDWORD
}
 FPU precision. More...
 
enum  eFPURounding {
  eFPURounding_Near,
  eFPURounding_Down,
  eFPURounding_Up,
  eFPURounding_Truncate,
  eFPURounding_Mask,
  eFPURounding_ForceDWORD
}
 FPU rounding. More...
 

Functions

template<typename T >
Complex< T > cx (T re, T im=T(0))
 
template<typename T >
Complex< T > cx (const ni::sVec2< T > &c)
 
template<typename T >
Complex< T > re (T v)
 
template<typename T >
Complex< T > im (T v)
 
template<typename T >
re (const Complex< T > &v)
 
template<typename T >
im (const Complex< T > &v)
 
template<>
Complex< tF32 > Num< Complex< tF32 > > (const tF64 a)
 
template<>
Complex< tF64 > Num< Complex< tF64 > > (const tF64 a)
 
template<typename T >
bool operator== (T v, const Complex< T > &c)
 
template<typename T >
bool operator!= (T v, const Complex< T > &c)
 
template<typename T >
Complex< T > Polar (T rho, T phi)
 
template<typename T >
Complex< T > Conjugate (const Complex< T > &c)
 
template<typename T >
Modulus (const Complex< T > &c)
 
template<typename T >
ModulusSq (const Complex< T > &c)
 
template<typename T >
Argument (const Complex< T > &c)
 
template<typename T >
Complex< T > Sqrt (const Complex< T > &c)
 
template<typename T >
Complex< T > Exp (const Complex< T > &c)
 
template<typename T >
Complex< T > Log10 (const Complex< T > &c)
 
template<typename T >
Complex< T > LogE (const Complex< T > &c)
 
template<typename T >
Complex< T > Pow (const Complex< T > &c, const Complex< T > &b)
 
template<typename T >
Complex< T > Sin (const Complex< T > &c)
 
template<typename T >
Complex< T > Cos (const Complex< T > &c)
 
template<typename T >
Complex< T > Tan (const Complex< T > &c)
 
Complexf ref (tF32 v)
 
Complexf imf (tF32 v)
 
template<typename T >
ClampT (T aX, T aMin, T aMax)
 
template<typename T >
RepeatT (T aX, T aMin, T aMax)
 
template<typename T >
MirrorT (T aX, T aMin, T aMax)
 
template<typename T >
CycleT (T aX, T aMin, T aMax)
 
template<typename T , typename S >
CurveStep (const T &a, const T &b, const S t)
 
template<class T , class S >
CurveLinear (const T &V1, const T &V2, S s)
 
template<typename T , typename S >
CurveCos (const T &a, const T &b, const S t)
 
template<class T , class S >
CurveHermite (const T &V1, const T &T1, const T &V2, const T &T2, S s)
 
template<class T , class S >
CurveCatmullRom (const T &V1, const T &V2, const T &V3, const T &V4, S s)
 
template<class T , class S >
CurveCardinal (const T &V1, const T &V2, const T &V3, const T &V4, S s, S a)
 
template<class T , class S >
CurveCardinal (const T &V1, const T &V2, S s, S a)
 
template<typename T >
CycleLinear (T aX, T aMin, T aMax)
 
template<typename T >
CycleCos (T aX, T aMin, T aMax)
 
template<typename T >
CycleCardinal (T aX, T aMin, T aMax, const T a)
 
template<typename T >
sDecomposedMatrix< T > & DecomposedMatrixFromMatrix (sDecomposedMatrix< T > &Out, const sMatrix< T > &In)
 
template<typename T >
sMatrix< T > & DecomposedMatrixToMatrix (sMatrix< T > &Out, const sDecomposedMatrix< T > &In)
 
template<typename T >
sDecomposedMatrix< T > & DecomposedMatrixLerp (sDecomposedMatrix< T > &Out, const sDecomposedMatrix< T > &A, const sDecomposedMatrix< T > &B, T fac, eQuatSlerp aSlerp=eQuatSlerp_Short)
 
template<typename T >
sDecomposedMatrix< T > & DecomposedMatrixMultiply (sDecomposedMatrix< T > &Out, const sDecomposedMatrix< T > &A, const sDecomposedMatrix< T > &B)
 
template<class T >
void MathUtilMatrixFromQuat (T &r11, T &r12, T &r13, T &r21, T &r22, T &r23, T &r31, T &r32, T &r33, const sQuat< T > &q)
 
template<class T >
void MathUtilPostTranslate (sMatrix< T > &m, const T tx, const T ty, const T tz)
 
template<class T >
void MathUtilPostRotateQuat (sMatrix< T > &m, const sQuat< T > &q)
 
template<class T >
void MathUtilPostRotateQuatInverse (sMatrix< T > &m, const sQuat< T > &q)
 
template<class T >
void MathUtilPostScale (sMatrix< T > &m, const T sx, const T sy, const T sz)
 
template<typename T >
sMatrix< T > & MatrixAffineTransformation (sMatrix< T > &Out, T scaling, const sVec3< T > *pRotationCenter=NULL, const sQuat< T > *pRotation=NULL, const sVec3< T > *pTranslation=NULL)
 
template<typename T >
MatrixDeterminant2 (const sMatrix< T > &M)
 
template<typename T >
MatrixDeterminant3 (const sMatrix< T > &M)
 
template<typename T >
MatrixDeterminant (const sMatrix< T > &M)
 
template<typename T >
MatrixGetHandeness (const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixIdentity (sMatrix< T > &Out)
 
template<typename T >
sMatrix< T > & MatrixInverse (sMatrix< T > &aOut, const sMatrix< T > &aIn, T *apDet=NULL)
 
template<typename T >
sMatrix< T > & MatrixTransformInverse (sMatrix< T > &Out, const sMatrix< T > &M)
 
template<typename T >
tBool MatrixIsIdentity (const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixLookAtRH (sMatrix< T > &Out, const sVec3< T > &Eye, const sVec3< T > &At, const sVec3< T > &Up)
 
template<typename T >
sMatrix< T > & MatrixLookAtLH (sMatrix< T > &Out, const sVec3< T > &Eye, const sVec3< T > &At, const sVec3< T > &Up)
 
template<typename T >
sMatrix< T > & MatrixMultiply (sMatrix< T > &Out, const sMatrix< T > &M1, const sMatrix< T > &M2)
 
template<typename T >
sMatrix< T > * MatrixMultiply (sMatrix< T > *Out, const sMatrix< T > *M1, const sMatrix< T > *M2)
 
template<typename T >
sMatrix< T > & MatrixOrthoRH (sMatrix< T > &Out, T w, T h, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixOrthoLH (sMatrix< T > &Out, T w, T h, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixOrthoOffCenterRH (sMatrix< T > &Out, T l, T r, T t, T b, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixOrthoOffCenterLH (sMatrix< T > &Out, T l, T r, T t, T b, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveRH (sMatrix< T > &Out, T w, T h, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveLH (sMatrix< T > &Out, T w, T h, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveFovRH (sMatrix< T > &Out, T fovy, T aspect, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveFovLH (sMatrix< T > &Out, T fovy, T aspect, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveOffCenterRH (sMatrix< T > &Out, T l, T r, T t, T b, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixPerspectiveOffCenterLH (sMatrix< T > &Out, T l, T r, T t, T b, T zn, T zf)
 
template<typename T >
sMatrix< T > & MatrixReflect (sMatrix< T > &Out, const sVec4< T > &Plane)
 
template<typename T >
ni::sMatrix< T > & MatrixRotationAxis (ni::sMatrix< T > &Out, const ni::sVec3< T > &V, T angle)
 
template<typename T >
sMatrix< T > & MatrixRotationQuat (sMatrix< T > &Out, const sQuat< T > &Q)
 
template<typename T >
sMatrix< T > & MatrixRotationX (sMatrix< T > &Out, T angle)
 
template<typename T >
sMatrix< T > & MatrixRotationY (sMatrix< T > &Out, T angle)
 
template<typename T >
sMatrix< T > & MatrixRotationZ (sMatrix< T > &Out, T angle)
 
template<typename T >
sMatrix< T > & MatrixRotationYawPitchRoll (sMatrix< T > &Out, T yaw, T pitch, T roll)
 
template<typename T >
sVec3< T > MatrixDecomposeYawPitchRoll (const sMatrix< T > &mat)
 
template<typename T >
sMatrix< T > & MatrixScaling (sMatrix< T > &Out, T sx, T sy, T sz)
 
template<typename T >
sMatrix< T > & MatrixScaling (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixScale (sMatrix< T > &Out, const sMatrix< T > &M, const T x, const T y, const T z)
 
template<typename T >
sMatrix< T > & MatrixScale (sMatrix< T > &Out, const sMatrix< T > &M, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixScale (sMatrix< T > &Out, const sMatrix< T > &M, const T s)
 
template<typename T >
sMatrix< T > & MatrixShadow (sMatrix< T > &Out, const sVec4< T > &vLight, const sVec4< T > &Plane)
 
template<typename T >
sMatrix< T > & MatrixTransformation (sMatrix< T > &Out, const sVec3< T > *pScalingCenter, const sQuat< T > *pScalingRotation, const sVec3< T > *pScaling, const sVec3< T > *pRotationCenter, const sQuat< T > *pRotation, const sVec3< T > *pTranslation)
 
template<typename T >
sMatrix< T > & MatrixTranslation (sMatrix< T > &Out, T x, T y, T z)
 
template<typename T >
sMatrix< T > & MatrixTranslation (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixTranspose (sMatrix< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixTranspose3x3 (sMatrix< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixTextureOffset2 (sMatrix< T > &Out, T fBias, tI32 nTexW, tI32 nTexH, tI32 nDepthBits)
 
template<typename T >
sMatrix< T > & MatrixTextureOffset (sMatrix< T > &Out, T fBias, tI32 nTexW, tI32 nTexH)
 
template<typename T >
sMatrix< T > & MatrixLerp (sMatrix< T > &Out, const sMatrix< T > &A, const sMatrix< T > &B, T fFac)
 
template<typename T >
sVec3< T > & MatrixGetForward (sVec3< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sVec3< T > & MatrixGetUp (sVec3< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sVec3< T > & MatrixGetRight (sVec3< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sVec3< T > & MatrixGetTranslation (sVec3< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixSetForward (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixSetUp (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixSetRight (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
sMatrix< T > & MatrixSetTranslation (sMatrix< T > &Out, const sVec3< T > &V)
 
template<typename T >
tBool MatrixIsNormal (const sMatrix< T > &M, T epsilon=niEpsilon5)
 
template<typename T >
tBool MatrixIsOrthogonal (const sMatrix< T > &M, T epsilon=niEpsilon5)
 
template<typename T >
tBool MatrixIsOrthoNormal (const sMatrix< T > &M, T epsilon=niEpsilon5)
 
template<typename T >
sMatrix< T > & MatrixSetRotation (sMatrix< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sVec3< T > & MatrixToEuler (const sMatrix< T > &M, sVec3< T > &euler)
 
template<typename T >
sMatrix< T > & MatrixToCoordinateSystem (sMatrix< T > &Out, const sVec3< T > &avRight, const sVec3< T > &avUp, const sVec3< T > &avFwd, const sVec3< T > &avOrg=sVec3< T >::Zero())
 
template<typename T >
sMatrix< T > * MatrixOrthogonalize (sMatrix< T > &Out, const sMatrix< T > &In, const T epsilon=(T) niEpsilon5)
 
template<typename T >
sMatrix< T > & MatrixNormalize (sMatrix< T > &Out, const sMatrix< T > &In)
 
template<typename T >
sMatrix< T > & MatrixSetScale (sMatrix< T > &Out, const sMatrix< T > &In, const sVec3f &avScale)
 
template<typename T >
sVec3< T > & MatrixGetProjectedTranslation (sVec3< T > &Out, const sMatrix< T > &M, T *pDeterminant=NULL)
 
template<typename T >
sMatrix< T > & MatrixSetProjectedTranslation (sMatrix< T > &Out, const sVec3< T > &avT)
 
template<typename T >
sMatrix< T > & MatrixSetNotRotation (sMatrix< T > &Out, const sMatrix< T > &M)
 
template<typename T >
sMatrix< T > & MatrixRotate (sMatrix< T > &Out, const sMatrix< T > &M1, const sMatrix< T > &M2)
 
template<typename T >
sMatrix< T > MatrixRotationPivot (sMatrix< T > &aOut, const sMatrix< T > &aM2, const sVec3< T > &avPivot)
 
template<typename T >
sMatrix< T > MatrixRotationPivotAndScale (sMatrix< T > &aOut, const sMatrix< T > &aM2, const sVec3< T > &avPivot, const sVec3< T > &avScale)
 
template<typename T >
sMatrix< T > & MatrixScalingH (sMatrix< T > &Out, T sx, T sy, T sz, T sh)
 
template<typename T >
sMatrix< T > & MatrixScalingH (sMatrix< T > &Out, const sVec4< T > &aR)
 
template<typename T >
sMatrix< T > & MatrixRotationXYZ (sMatrix< T > &Out, T x, T y, T z)
 
template<typename T >
sMatrix< T > & MatrixRotationXYZ (sMatrix< T > &Out, const sVec3< T > &aR)
 
template<typename T >
sMatrix< T > & MatrixRotationZYX (sMatrix< T > &Out, T x, T y, T z)
 
template<typename T >
sMatrix< T > & MatrixRotationZYX (sMatrix< T > &Out, const sVec3< T > &aR)
 
template<typename T >
sVec3< T > & MatrixGetLocalScale (sVec3< T > &aS, const sMatrix< T > &In)
 
template<typename T >
sVec3< T > & MatrixGetLocalScaleSq (sVec3< T > &aS, const sMatrix< T > &In)
 
template<typename T >
void MatrixDecompose (const sMatrix< T > &In, sVec3< T > &aT, sVec3< T > &aR, sVec4< T > &aS, const T aEps=(T) niEpsilon4)
 
template<typename T >
void MatrixDecomposeQ (const sMatrix< T > &In, sVec3< T > &aT, sQuat< T > &aR, sVec4< T > &aS, const T aEps=(T) niEpsilon5)
 
template<typename T >
sMatrix< T > & MatrixCompose (sMatrix< T > &Out, const sVec3< T > &aT, const sVec3< T > &aR, const sVec4< T > &aS)
 
template<typename T >
sMatrix< T > & MatrixComposeQ (sMatrix< T > &Out, const sVec3< T > &aT, const sQuat< T > &aR, const sVec4< T > &aS)
 
template<typename T >
sMatrix< T > & MatrixViewport (sMatrix< T > &Out, const sVec4< T > &aVP, const T aMinZ, const T aMaxZ)
 
template<typename T >
const sMatrix< T > & MatrixAdjustViewport (sMatrix< T > &Out, const sVec4< T > &aContextVP, const sVec4< T > &aVirtualVP, const T afMinZ, const T afMaxZ)
 
template<typename T >
MatrixGetFovV (const sMatrix< T > &aMtx)
 
template<typename T >
sVec3< T > & MatrixDecomposeGetZYX (sVec3< T > &aR, const sMatrix< T > &In, const T aEps=(T) niEpsilon4)
 
template<typename T >
sQuat< T > & MatrixDecomposeGetQ (sQuat< T > &aR, const sMatrix< T > &In, const T aEps=(T) niEpsilon4)
 
template<typename T >
sVec4< T > & MatrixDecomposeGetScale (sVec4< T > &aS, const sMatrix< T > &In, const T aEps=(T) niEpsilon4)
 
template<typename T >
sVec3< T > & MatrixDecomposeGetTranslation (sVec3< T > &aT, const sMatrix< T > &In)
 
template<typename T >
sMatrix< T > MatrixFlipProjectionY (const sMatrix< T > &aMatrix)
 
template<typename T >
sMatrix< T > MatrixProjection2D (const T afOrthoProjectionOffset, const sRect< T > &aRect, const T afVerticalFov, const sVec2< T > &aCameraPos=sVec2< T >::Zero())
 Compute a projection matrix to do pixel perfect 2d rendering. More...
 
template<class T >
PlaneDot (const sVec4< T > &P, const sVec4< T > &V)
 
template<class T >
PlaneDotCoord (const sVec4< T > &P, const sVec3< T > &V)
 
template<class T >
PlaneDistance (const sVec4< T > &P, const sVec3< T > &V)
 
template<class T >
PlaneDotNormal (const sVec4< T > &P, const sVec3< T > &V)
 
template<class T >
sVec4< T > & PlaneFromPointNormal (sVec4< T > &Out, const sVec3< T > &vPoint, const sVec3< T > &vNormal)
 
template<class T >
sVec4< T > & PlaneFromPoints (sVec4< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2, const sVec3< T > &V3)
 
template<class T >
sVec3< T > * PlaneIntersectLine (const sVec4< T > &P, const sVec3< T > &V1, const sVec3< T > &V2, sVec3< T > *pOut=NULL, T *percent=NULL)
 
template<typename T >
sVec3< T > * PlaneIntersectRay (const sVec4< T > &P, const sVec3< T > &avRayPos, const sVec3< T > &avRayDir, sVec3< T > *pOut=NULL, T *dist=NULL)
 
template<class T >
sVec4< T > * PlaneNormalize (sVec4< T > &Out, const sVec4< T > &P)
 
template<class T >
sVec4< T > * PlaneNormalize (sVec4< T > &Out)
 
template<class T >
sVec4< T > & PlaneTransform (sVec4< T > &Out, const sVec4< T > &P, const sMatrix< T > &M)
 
template<class T >
sVec4< T > & PlaneTransformInversedMatrix (sVec4< T > &Out, const sVec4< T > &P, const sMatrix< T > &M)
 
template<class T >
sVec3< T > * PlaneIntersection (sVec3< T > &Out, const sVec4< T > &PA, const sVec4< T > &PB, const sVec4< T > &PC)
 
template<class T >
sVec3< T > & PlaneClosest (sVec3< T > &Out, const sVec4< T > &P, const sVec3< T > &A)
 
template<class T >
ePlaneType PlaneType (const sVec4< T > &Plane)
 
template<class T >
ePlaneType PlaneMaxType (const sVec4< T > &Plane)
 
template<class T >
sMatrix< T > & PlaneExtractCoordinateSystem (sMatrix< T > &Out, const sVec4< T > &Plane, tBool abTranspose, const sVec3< T > *apFwdDir, const sVec3< T > *apOrigin)
 The output matrix will contain the coordinate system that corespond to the plane. Up vector is the plane normal. Right and Fwd lies on the plane. If not NULL apFwdDir is the direction toward which the forward vector should be the closest. By example if you want the forward vector to be the one that points down you'd pass sVec3f::OpYAxis() here. More...
 
template<class T >
tBool PlaneIntersectSphere (const sVec4< T > &plane, const sVec3< T > &pos, T radius)
 
template<class T >
sQuat< T > & QuatBaryCentric (sQuat< T > &Out, const sQuat< T > &Q1, const sQuat< T > &Q2, const sQuat< T > &Q3, T f, T g)
 
template<class T >
sQuat< T > & QuatConjugate (sQuat< T > &Out, const sQuat< T > &Q)
 
template<class T >
QuatDot (const sQuat< T > &Q1, const sQuat< T > &Q2)
 
template<class T >
sQuat< T > & QuatExp (sQuat< T > &Out, const sQuat< T > &Q)
 
template<class T >
sQuat< T > & QuatIdentity (sQuat< T > &Out)
 
template<class T >
sQuat< T > & QuatInverse (sQuat< T > &Out, const sQuat< T > &Q)
 
template<class T >
tBool QuatIsIdentity (const sQuat< T > &Q)
 
template<class T >
QuatLength (const sQuat< T > &Q)
 
template<class T >
QuatLengthSq (const sQuat< T > &Q)
 
template<class T >
sQuat< T > & QuatLn (sQuat< T > &Out, const sQuat< T > &Q)
 
template<class T >
sQuat< T > & QuatMultiply (sQuat< T > &Out, const sQuat< T > &Q1, const sQuat< T > &Q2)
 
template<class T >
sQuat< T > & QuatNormalize (sQuat< T > &Out, const sQuat< T > &Q)
 
template<class T >
sQuat< T > & QuatNormalize (sQuat< T > &Out)
 
template<class T >
sQuat< T > & QuatRotationAxis (sQuat< T > &Out, const sVec3< T > &V, T angle)
 
template<class T >
sQuat< T > & QuatRotateX (sQuat< T > &Out, const sQuat< T > &Src, T angle)
 
template<class T >
sQuat< T > & QuatRotateY (sQuat< T > &Out, const sQuat< T > &Src, T angle)
 
template<class T >
sQuat< T > & QuatRotateZ (sQuat< T > &Out, const sQuat< T > &Src, T angle)
 
template<class T >
sQuat< T > & QuatRotationX (sQuat< T > &Out, T angle)
 
template<class T >
sQuat< T > & QuatRotationY (sQuat< T > &Out, T angle)
 
template<class T >
sQuat< T > & QuatRotationZ (sQuat< T > &Out, T angle)
 
template<class T >
sQuat< T > & QuatRotationMatrix (sQuat< T > &Out, const sMatrix< T > &M)
 
template<class T >
sQuat< T > & QuatRotationYawPitchRoll (sQuat< T > &Out, const T yaw, const T pitch, const T roll)
 
template<class T >
sQuat< T > & QuatRotationVector (sQuat< T > &Out, const sVec3< T > &vFrom, const sVec3< T > &vTo)
 
template<class T >
sQuat< T > & QuatSlerp (sQuat< T > &Out, const sQuat< T > &Q1, const sQuat< T > &Q2, T t, eQuatSlerp mode=eQuatSlerp_Short)
 
template<class T >
sQuat< T > & QuatSquad (sQuat< T > &Out, const sQuat< T > &Q1, const sQuat< T > &Q2, const sQuat< T > &Q3, const sQuat< T > &Q4, T t)
 
template<class T >
sVec3< T > & QuatGetAxis (sVec3< T > &vAxis, const sQuat< T > &Q)
 
template<class T >
QuatGetAngle (const sQuat< T > &Q)
 
template<class T >
void QuatToAxisAngle (const sQuat< T > &Q, sVec3< T > &vAxis, T &Angle)
 
template<class T >
sVec3< T > & QuatToEuler (const sQuat< T > &Q, sVec3< T > &euler)
 
template<typename T >
sQuat< T > & QuatRandom (sQuat< T > &aQ)
 
template<class T >
sQuat< T > & QuatRotationZYX (sQuat< T > &Out, T rx, T ry, T rz)
 
template<class T >
sQuat< T > & QuatRotationZYX (sQuat< T > &Out, const sVec3< T > &V)
 
template<class T >
sQuat< T > & QuatRotationXYZ (sQuat< T > &Out, T rx, T ry, T rz)
 
template<class T >
sQuat< T > & QuatRotationXYZ (sQuat< T > &Out, const sVec3< T > &V)
 
template<typename T >
sVec2< T > & VecClamp (sVec2< T > &Out, const sVec2< T > &V, const sVec2< T > &aMin=sVec2< T >::Zero(), const sVec2< T > &aMax=sVec2< T >::One())
 
template<class T >
sVec2< T > & VecAdd (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecMul (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecDiv (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecMAD (sVec2< T > &Out, const sVec2< T > &A, const sVec2< T > &B, const sVec2< T > &C)
 
template<class T >
sVec2< T > & VecMAD (sVec2< T > &Out, const sVec2< T > &A, T scale, const sVec2< T > &B)
 
template<class T >
sVec2< T > & VecMAD (sVec2< T > &Out, const sVec2< T > &A, T scale, T add)
 
template<class T >
sVec2< T > & VecSub (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecBaryCentric (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2, const sVec2< T > &V3, T f, T g)
 
template<class T >
sVec2< T > & VecCatmullRom (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2, const sVec2< T > &V3, const sVec2< T > &V4, T s)
 
template<class T >
VecCCW (const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
VecDot (const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
VecDot (const sVec2< T > *V1, const sVec2< T > *V2)
 
template<class T >
sVec2< T > & VecHermite (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &T1, const sVec2< T > &V2, const sVec2< T > &T2, T s)
 
template<class T >
VecLength (const sVec2< T > &V)
 
template<class T >
VecDistance (const sVec2< T > &A, const sVec2< T > &B)
 
template<class T >
sVec2< T > & VecSetLength (sVec2< T > &Out, const sVec2< T > &V, T l)
 
template<class T >
VecLengthSq (const sVec2< T > &V)
 
template<class T >
sVec2< T > & VecMaximize (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecMinimize (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2)
 
template<class T >
sVec2< T > & VecNormalize (sVec2< T > &Out, const sVec2< T > &V)
 
template<class T >
sVec2< T > * VecNormalize (sVec2< T > *Out, const sVec2< T > *V)
 
template<class T >
sVec2< T > & VecNormalize (sVec2< T > &Out)
 
template<class T >
sVec2< T > & VecScale (sVec2< T > &Out, const sVec2< T > &V, T s)
 
template<class T >
sVec4< T > & VecTransform (sVec4< T > &Out, const sVec2< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec4< T > * VecTransform (sVec4< T > *Out, const sVec2< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec2< T > & VecTransformCoord (sVec2< T > &Out, const sVec2< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec2< T > * VecTransformCoord (sVec2< T > *Out, const sVec2< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec2< T > & VecTransformNormal (sVec2< T > &Out, const sVec2< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec2< T > * VecTransformNormal (sVec2< T > *Out, const sVec2< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec2< T > & VecAbs (sVec2< T > &Out, const sVec2< T > &V)
 
template<class T >
sVec2< T > & VecLerp (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2, T fac)
 
template<class T >
sVec2< T > & VecLerp (sVec2< T > &Out, const sVec2< T > &V1, const sVec2< T > &V2, const sVec2< T > &V3)
 
template<class T >
tBool VecIsNormal (const sVec2< T > &v, T epsilon=niEpsilon5)
 
template<class T >
sVec2< T > & VecInverse (sVec2< T > &Out, const sVec2< T > &V)
 
template<class T >
tBool VecEqual (const sVec2< T > &A, const sVec2< T > &B, T epsilon=niEpsilon5)
 
template<class T >
int VecMaxAxis (const sVec2< T > &V)
 
template<typename T >
sVec3< T > & VecClamp (sVec3< T > &Out, const sVec3< T > &V, const sVec3< T > &aMin=sVec3< T >::Zero(), const sVec3< T > &aMax=sVec3< T >::One())
 
template<class T >
sVec3< T > & VecAdd (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecSub (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecMul (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecDiv (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecMAD (sVec3< T > &Out, const sVec3< T > &A, const sVec3< T > &B, const sVec3< T > &C)
 
template<class T >
sVec3< T > & VecMAD (sVec3< T > &Out, const sVec3< T > &A, const T scale, const sVec3< T > &B)
 
template<class T >
sVec3< T > & VecBaryCentric (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2, const sVec3< T > &V3, T f, T g)
 
template<class T >
sVec3< T > & VecCatmullRom (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2, const sVec3< T > &V3, const sVec3< T > &V4, T s)
 
template<class T >
sVec3< T > & VecCross (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > * VecCross (sVec3< T > *Out, const sVec3< T > *V1, const sVec3< T > *V2)
 
template<class T >
VecDot (const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
VecDot (const sVec3< T > *V1, const sVec3< T > *V2)
 
template<class T >
sVec3< T > & VecHermite (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &T1, const sVec3< T > &V2, const sVec3< T > &T2, T s)
 
template<class T >
VecLength (const sVec3< T > &V)
 
template<class T >
VecDistance (const sVec3< T > &A, const sVec3< T > &B)
 
template<class T >
sVec3< T > & VecSetLength (sVec3< T > &Out, const sVec3< T > &V, T l)
 
template<class T >
VecLengthSq (const sVec3< T > &V)
 
template<class T >
sVec3< T > & VecMaximize (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecMinimize (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2)
 
template<class T >
sVec3< T > & VecNormalize (sVec3< T > &Out, const sVec3< T > &V)
 
template<class T >
sVec3< T > * VecNormalize (sVec3< T > *Out, const sVec3< T > *V)
 
template<class T >
sVec3< T > & VecNormalize (sVec3< T > &Out)
 
template<class T >
sVec3< T > & VecScale (sVec3< T > &Out, const sVec3< T > &V, T s)
 
template<class T >
sVec4< T > & VecTransform (sVec4< T > &Out, const sVec3< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec4< T > * VecTransform (sVec4< T > *Out, const sVec3< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec3< T > & VecTransformCoord (sVec3< T > &Out, const sVec3< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec3< T > * VecTransformCoord (sVec3< T > *Out, const sVec3< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec3< T > & VecTransformNormal (sVec3< T > &Out, const sVec3< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec3< T > * VecTransformNormal (sVec3< T > *Out, const sVec3< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec3< T > & VecAbs (sVec3< T > &Out, const sVec3< T > &V)
 
template<class T >
sVec3< T > & VecLerp (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2, T fac)
 
template<class T >
sVec3< T > & VecLerp (sVec3< T > &Out, const sVec3< T > &V1, const sVec3< T > &V2, const sVec3< T > &V3)
 
template<class T >
tBool VecIsNormal (const sVec3< T > &v, T epsilon=niEpsilon5)
 
template<class T >
sVec3< T > & VecInverse (sVec3< T > &Out, const sVec3< T > &V)
 
template<typename T >
sVec3< T > & VecToViewport (sVec3< T > &aOut, const ni::sVec3< T > &avProjected, const ni::sRect< T > &aRect)
 
template<typename T >
sVec3< T > & VecProject (sVec3< T > &aOut, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &amtxWVP, const ni::sRect< T > &aRect)
 
template<typename T >
sVec4< T > & VecProjectRHW (sVec4< T > &aOut, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &mtxWVP, const ni::sRect< T > &aRect)
 
template<class T >
sVec3< T > & VecUnproject (sVec3< T > &avOut, const sVec3< T > &avIn, T afVPX, T afVPY, T afVPW, T afVPH, const sMatrix< T > &amtxViewProj)
 
template<class T >
tBool VecEqual (const sVec3< T > &A, const sVec3< T > &B, T epsilon=niEpsilon5)
 
template<class T >
sVec3< T > & VecReflect (sVec3< T > &Out, const sVec3< T > &Dir, const sVec3< T > &Normal)
 
template<typename T >
VecAngle (const sVec3< T > &v1, const sVec3< T > &v2)
 
template<class T >
int VecMaxAxis (const sVec3< T > &V)
 
template<typename T >
ni::sVec3< T > GetScreenPosition (const ni::sVec3< T > &avPos, const sMatrix< T > &mtxVP, const ni::sRect< T > &aRect)
 
template<class T >
void ComputeTangentSpace (const sVec3< T > &PA, const sVec2< T > &TA, const sVec3< T > &PB, const sVec2< T > &TB, const sVec3< T > &PC, const sVec2< T > &TC, sVec3< T > &vTangent0, sVec3< T > &vTangent1)
 Compute texture space of a triangle. More...
 
template<typename T >
ComputePixelScaleX (const sVec3< T > &pos, const sMatrix< T > &worldView, const sMatrix< T > &proj, const ni::sRect< T > &aRect)
 
template<typename T >
ComputePixelScaleY (const sVec3< T > &pos, const sMatrix< T > &worldView, const sMatrix< T > &proj, const ni::sRect< T > &aRect)
 
template<typename T >
ComputePixelWorldSizeX (const T afPixelSize, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &mtxWorldView, const ni::sMatrix< T > &mtxProj, const ni::sRect< T > &aRect)
 
template<typename T >
ComputePixelWorldSizeY (const T afPixelSize, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &mtxWorldView, const ni::sMatrix< T > &mtxProj, const ni::sRect< T > &aRect)
 
template<typename T >
sVec2< T > ComputePixelWorldSizeVec2 (const T afPixelSize, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &mtxWorldView, const ni::sMatrix< T > &mtxProj, const ni::sRect< T > &aRect)
 
template<typename T >
ComputePixelWorldSize (const T afPixelSize, const ni::sVec3< T > &avPos, const ni::sMatrix< T > &mtxWorldView, const ni::sMatrix< T > &mtxProj, const ni::sRect< T > &aRect)
 
template<typename T >
ni::sVec3< T > & VecSphericalToCartesian (ni::sVec3< T > &aOut, const ni::sVec3< T > &avS)
 
template<typename T >
ni::sVec3< T > & VecCartesianToSpherical (ni::sVec3< T > &aOut, const ni::sVec3< T > &avC)
 
template<typename T >
ni::sVec3< T > & VecOrbitPitch (ni::sVec3< T > &aOut, const ni::sVec3< T > &aTarget, const ni::sVec3< T > &aPos, T afPitch)
 
template<typename T >
ni::sVec3< T > & VecOrbitYaw (ni::sVec3< T > &aOut, const ni::sVec3< T > &aTarget, const ni::sVec3< T > &aPos, T afYaw)
 
template<typename T >
ni::sVec3< T > & VecOrbitYawPitch (ni::sVec3< T > &aOut, const ni::sVec3< T > &aTarget, const ni::sVec3< T > &aPos, T afYaw, T afPitch)
 
template<typename T >
sVec3< T > & RandomDirection (sVec3< T > &vDirOut, const sVec3< T > &vN, int4 *aPRNG=ni_prng_global())
 Generates a random direction in the upper hemisphere. More...
 
template<typename T >
sVec4< T > & VecClamp (sVec4< T > &Out, const sVec4< T > &V, const sVec4< T > &aMin=sVec4< T >::Zero(), const sVec4< T > &aMax=sVec4< T >::One())
 
template<class T >
sVec4< T > & VecAdd (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecSub (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecMul (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecDiv (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecMAD (sVec4< T > &Out, const sVec4< T > &A, const sVec4< T > &B, const sVec4< T > &C)
 
template<class T >
sVec4< T > & VecMAD (sVec4< T > &Out, const sVec4< T > &A, const T scale, const sVec4< T > &B)
 
template<class T >
sVec4< T > & VecBaryCentric (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2, const sVec4< T > &V3, T f, T g)
 
template<class T >
sVec4< T > & VecCatmullRom (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2, const sVec4< T > &V3, const sVec4< T > &V4, T s)
 
template<class T >
sVec4< T > & VecCross (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2, const sVec4< T > &V3)
 
template<class T >
sVec4< T > * VecCross (sVec4< T > *Out, const sVec4< T > *V1, const sVec4< T > *V2, const sVec4< T > *V3)
 
template<class T >
VecDot (const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
VecDot (const sVec4< T > *V1, const sVec4< T > *V2)
 
template<class T >
sVec4< T > & VecHermite (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &T1, const sVec4< T > &V2, const sVec4< T > &T2, T s)
 
template<class T >
VecLength (const sVec4< T > &V)
 
template<class T >
VecDistance (const sVec4< T > &A, const sVec4< T > &B)
 
template<class T >
sVec4< T > & VecSetLength (sVec4< T > &Out, const sVec4< T > &V, T l)
 
template<class T >
VecLengthSq (const sVec4< T > &V)
 
template<class T >
sVec4< T > & VecMaximize (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecMinimize (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2)
 
template<class T >
sVec4< T > & VecNormalize (sVec4< T > &Out, const sVec4< T > &V)
 
template<class T >
sVec4< T > * VecNormalize (sVec4< T > *Out, const sVec4< T > *V)
 
template<class T >
sVec4< T > & VecNormalize (sVec4< T > &Out)
 
template<class T >
sVec4< T > & VecScale (sVec4< T > &Out, const sVec4< T > &V, T s)
 
template<class T >
sVec4< T > & VecTransform (sVec4< T > &Out, const sVec4< T > &V, const sMatrix< T > &M)
 
template<class T >
sVec4< T > * VecTransform (sVec4< T > *Out, const sVec4< T > *V, const sMatrix< T > *M)
 
template<class T >
sVec4< T > & VecAbs (sVec4< T > &Out, const sVec4< T > &V)
 
template<class T >
sVec4< T > & VecLerp (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2, T fac)
 
template<class T >
sVec4< T > & VecLerp (sVec4< T > &Out, const sVec4< T > &V1, const sVec4< T > &V2, const sVec4< T > &V3)
 
template<class T >
tBool VecIsNormal (const sVec4< T > &v, T epsilon=niEpsilon5)
 
template<class T >
sVec4< T > & VecInverse (sVec4< T > &Out, const sVec4< T > &V)
 
template<class T >
tBool VecEqual (const sVec4< T > &A, const sVec4< T > &B, T epsilon=niEpsilon5)
 
template<class T >
int VecMaxAxis (const sVec4< T > &V)
 
 sRect ()
 
 sRect (const sVec4< T > &avVec)
 
 sRect (const sVec2< T > &aTopLeft, const sVec2< T > &aBottomRight)
 
 sRect (T aLeft, T aTop, T aWidth=0, T aHeight=0)
 
 sRect (const sVec2< T > &aTopLeft, T aWidth=0, T aHeight=0)
 
void Set (const sVec2< T > &aTopLeft, T aWidth, T aHeight)
 Set the Top Left corner and the size of the rectangle. More...
 
void Set (T aLeft, T aTop, T aWidth=0, T aHeight=0)
 Set the Top Left corner and the size of the rectangle. More...
 
void SetCorners (const sVec2< T > &aTopLeft, const sVec2< T > &aBottomRight)
 Set the rectangle corners. More...
 
void SetCorner (eRectCorners aCorner, const sVec2< T > &aCornerPos)
 Set a rectangle corner. Adapt the others accordingly. More...
 
sVec2< T > GetCorner (eRectCorners aCorner) const
 Get a rectangle corner. More...
 
void SetLeft (T aV)
 Set the Left edge. More...
 
GetLeft () const
 Get the Left edge. More...
 
void SetRight (T aV)
 Set the Right edge. More...
 
GetRight () const
 Get the Right edge. More...
 
void SetTop (T aV)
 Set the Top edge. More...
 
GetTop () const
 Get the Top edge. More...
 
void SetBottom (T aV)
 Set the Bottom edge. More...
 
GetBottom () const
 Get the Bottom edge. More...
 
void SetWidth (T aWidth)
 Set the width of the rectangle. More...
 
GetWidth () const
 Get the width of the rectangle. More...
 
void SetHeight (T aHeight)
 Set the height of the rectangle. More...
 
GetHeight () const
 Get the height of the rectangle. More...
 
void SetSize (T aWidth, T aHeight)
 Set the width and height of the rectangle. More...
 
void SetSize (const sVec2< T > &aSize)
 Set the size of the rectangle. More...
 
sVec2< T > GetSize () const
 Get the size of the rectangle. More...
 
void Move (const sVec2< T > &aMoveOffset)
 Move the rectangle of the given offsets (relative movement). More...
 
void MoveTo (const sVec2< T > &aPos, eRectCorners aCorner=eRectCorners_TopLeft)
 Move the rectangle to the given position (absolute movement). More...
 
void Inflate (const sVec2< T > &aV)
 Inflate the size of the rectangle. More...
 
void Normalize ()
 Normalize the rectangle. Make sure that width and height are positive. More...
 
void SetCenter (const sVec2< T > &avPos)
 Set the center point of the rectangle. More...
 
sVec2< T > GetCenter () const
 Get the center point of the rectangle. More...
 
tBool IntersectRect (const sRect< T > &aRect) const
 Return eTrue if the given rectangle intersect this rectangle. More...
 
tBool Intersect (const sVec2< T > &aPoint) const
 Return eTrue if the given point intersect/is inside this rectangle. More...
 
sRect ClipRect (const sRect< T > &aRect) const
 clips the rectangle passed against himself and returns the resulting rectangle More...
 
sRect ComputeFrameCenter (T Left, T Right, T Top, T Bottom) const
 Get the center of the a frame with the specified borders. More...
 
sRect & operator+= (const sVec2< T > &v)
 += operator, move the rectangle. More...
 
sRect operator+ (const sVec2< T > &v) const
 += operator, move the rectangle. More...
 
sRect & operator-= (const sVec2< T > &v)
 -= operator, move the rectangle. More...
 
sRect operator- (const sVec2< T > &v) const
 -= operator, move the rectangle. More...
 
sRect & operator= (const sVec2< T > &v)
 = operator, move the rectangle to the specified position, Top Left is the anchor corner. More...
 

Typedef Documentation

typedef Complex<tF32> Complexf

tF32 complex number

typedef Complex<tF64> Complexd

tF64 complex number

typedef sDecomposedMatrix<tF32> sDecomposedMatrixf

Decomposed matrix tF32.

typedef sDecomposedMatrix<tF64> sDecomposedMatrixd

Decomposed matrix tF64.

typedef sRect<tI32> sRecti

Int Rect.

typedef sRect<tF32> sRectf

Float Rect.

typedef astl::vector<sVec2f> tVec2fVec
typedef tVec2fVec::iterator tVec2fVecIt
typedef tVec2fVec::const_iterator tVec2fVecCIt
typedef astl::vector<sVec2i> tVec2iVec
typedef tVec2iVec::iterator tVec2iVecIt
typedef tVec2iVec::const_iterator tVec2iVecCIt
typedef astl::vector<sVec3f> tVec3fVec
typedef tVec3fVec::iterator tVec3fVecIt
typedef tVec3fVec::const_iterator tVec3fVecCIt
typedef astl::vector<sVec4f> tVec4fVec
typedef tVec4fVec::iterator tVec4fVecIt
typedef tVec4fVec::const_iterator tVec4fVecCIt
typedef astl::vector<sPlanef> tPlanefVec
typedef tPlanefVec::iterator tPlanefVecIt
typedef tPlanefVec::const_iterator tPlanefVecCIt
typedef astl::vector<sMatrixf> tMatrixfVec

sMatrixf vector.

typedef tMatrixfVec::iterator tMatrixfVecIt

sMatrixf vector iterator.

typedef tMatrixfVec::const_iterator tMatrixfVecCIt

sMatrixf vector constant iterator.

typedef tMatrixfVec::reverse_iterator tMatrixfVecRIt

sMatrixf vector reverse iterator.

typedef tMatrixfVec::const_reverse_iterator tMatrixfVecCRIt

sMatrixf vector constant reverse iterator.

typedef sMatrix< tF64 > sMatrixd

tF64 matrix.

typedef astl::vector<sMatrixd> tMatrixdVec

sMatrixd vector.

typedef tMatrixdVec::iterator tMatrixdVecIt

sMatrixd vector iterator.

typedef tMatrixdVec::const_iterator tMatrixdVecCIt

sMatrixd vector constant iterator.

typedef tMatrixdVec::reverse_iterator tMatrixdVecRIt

sMatrixd vector reverse iterator.

typedef tMatrixdVec::const_reverse_iterator tMatrixdVecCRIt

sMatrixd vector constant reverse iterator.

typedef XMatrix<2,2,tI32> XMatrix22l
typedef XMatrix<2,3,tI32> XMatrix23l
typedef XMatrix<3,3,tI32> XMatrix33l
typedef XMatrix<4,4,tI32> XMatrix44l
typedef XMatrix<2,1,tI32> XVec2l
typedef XMatrix<3,1,tI32> XVec3l
typedef XMatrix<4,1,tI32> XVec4l
typedef XMatrix<2,2,tF32> XMatrix22f
typedef XMatrix<2,3,tF32> XMatrix23f
typedef XMatrix<3,3,tF32> XMatrix33f
typedef XMatrix<4,4,tF32> XMatrix44f
typedef XMatrix<2,1,tF32> XVec2f
typedef XMatrix<3,1,tF32> XVec3f
typedef XMatrix<4,1,tF32> XVec4f
typedef XMatrix<2,2,tF64> XMatrix22d
typedef XMatrix<2,3,tF64> XMatrix23d
typedef XMatrix<3,3,tF64> XMatrix33d
typedef XMatrix<4,4,tF64> XMatrix44d
typedef XMatrix<2,1,tF64> XVec2d
typedef XMatrix<3,1,tF64> XVec3d
typedef XMatrix<4,1,tF64> XVec4d

Enumeration Type Documentation

enum eFPUPrecision

FPU precision.

Enumerator
eFPUPrecision_24 
eFPUPrecision_53 
eFPUPrecision_64 
eFPUPrecision_Mask 
eFPUPrecision_Lowest 
eFPUPrecision_Highest 
eFPUPrecision_ForceDWORD 
enum eFPURounding

FPU rounding.

Enumerator
eFPURounding_Near 
eFPURounding_Down 
eFPURounding_Up 
eFPURounding_Truncate 
eFPURounding_Mask 
eFPURounding_ForceDWORD 

Function Documentation

Complex<T> ni::cx ( re,
im = T(0) 
)
Complex<T> ni::cx ( const ni::sVec2< T > &  c)
Complex<T> ni::re ( v)
Complex<T> ni::im ( v)
T ni::re ( const Complex< T > &  v)
T ni::im ( const Complex< T > &  v)
Complex<tF32> ni::Num< Complex< tF32 > > ( const tF64  a)
Complex<tF64> ni::Num< Complex< tF64 > > ( const tF64  a)
bool ni::operator== ( v,
const Complex< T > &  c 
)
bool ni::operator!= ( v,
const Complex< T > &  c 
)
Complex<T> ni::Polar ( rho,
phi 
)
Complex<T> ni::Conjugate ( const Complex< T > &  c)
T ni::Modulus ( const Complex< T > &  c)
T ni::ModulusSq ( const Complex< T > &  c)
T ni::Argument ( const Complex< T > &  c)
Complex<T> ni::Sqrt ( const Complex< T > &  c)
Complex<T> ni::Exp ( const Complex< T > &  c)
Complex<T> ni::Log10 ( const Complex< T > &  c)
Complex<T> ni::LogE ( const Complex< T > &  c)
Complex<T> ni::Pow ( const Complex< T > &  c,
const Complex< T > &  b 
)
Complex<T> ni::Sin ( const Complex< T > &  c)
Complex<T> ni::Cos ( const Complex< T > &  c)
Complex<T> ni::Tan ( const Complex< T > &  c)
Complexf ni::ref ( tF32  v)
Complexf ni::imf ( tF32  v)
T ni::ClampT ( aX,
aMin,
aMax 
)
T ni::RepeatT ( aX,
aMin,
aMax 
)
T ni::MirrorT ( aX,
aMin,
aMax 
)
T ni::CycleT ( aX,
aMin,
aMax 
)
T ni::CurveStep ( const T &  a,
const T &  b,
const S  t 
)
T ni::CurveLinear ( const T &  V1,
const T &  V2,
s 
)
T ni::CurveCos ( const T &  a,
const T &  b,
const S  t 
)
T ni::CurveHermite ( const T &  V1,
const T &  T1,
const T &  V2,
const T &  T2,
s 
)
T ni::CurveCatmullRom ( const T &  V1,
const T &  V2,
const T &  V3,
const T &  V4,
s 
)
T ni::CurveCardinal ( const T &  V1,
const T &  V2,
const T &  V3,
const T &  V4,
s,
a 
)
T ni::CurveCardinal ( const T &  V1,
const T &  V2,
s,
a 
)
T ni::CycleLinear ( aX,
aMin,
aMax 
)
T ni::CycleCos ( aX,
aMin,
aMax 
)
T ni::CycleCardinal ( aX,
aMin,
aMax,
const T  a 
)
sDecomposedMatrix<T>& ni::DecomposedMatrixFromMatrix ( sDecomposedMatrix< T > &  Out,
const sMatrix< T > &  In 
)
sMatrix<T>& ni::DecomposedMatrixToMatrix ( sMatrix< T > &  Out,
const sDecomposedMatrix< T > &  In 
)
sDecomposedMatrix<T>& ni::DecomposedMatrixLerp ( sDecomposedMatrix< T > &  Out,
const sDecomposedMatrix< T > &  A,
const sDecomposedMatrix< T > &  B,
fac,
eQuatSlerp  aSlerp = eQuatSlerp_Short 
)
sDecomposedMatrix<T>& ni::DecomposedMatrixMultiply ( sDecomposedMatrix< T > &  Out,
const sDecomposedMatrix< T > &  A,
const sDecomposedMatrix< T > &  B 
)
void ni::MathUtilMatrixFromQuat ( T &  r11,
T &  r12,
T &  r13,
T &  r21,
T &  r22,
T &  r23,
T &  r31,
T &  r32,
T &  r33,
const sQuat< T > &  q 
)
void ni::MathUtilPostTranslate ( sMatrix< T > &  m,
const T  tx,
const T  ty,
const T  tz 
)
void ni::MathUtilPostRotateQuat ( sMatrix< T > &  m,
const sQuat< T > &  q 
)
void ni::MathUtilPostRotateQuatInverse ( sMatrix< T > &  m,
const sQuat< T > &  q 
)
void ni::MathUtilPostScale ( sMatrix< T > &  m,
const T  sx,
const T  sy,
const T  sz 
)
sMatrix<T>& ni::MatrixAffineTransformation ( sMatrix< T > &  Out,
scaling,
const sVec3< T > *  pRotationCenter = NULL,
const sQuat< T > *  pRotation = NULL,
const sVec3< T > *  pTranslation = NULL 
)
T ni::MatrixDeterminant2 ( const sMatrix< T > &  M)
T ni::MatrixDeterminant3 ( const sMatrix< T > &  M)
T ni::MatrixDeterminant ( const sMatrix< T > &  M)
T ni::MatrixGetHandeness ( const sMatrix< T > &  M)
sMatrix<T>& ni::MatrixIdentity ( sMatrix< T > &  Out)
sMatrix<T>& ni::MatrixInverse ( sMatrix< T > &  aOut,
const sMatrix< T > &  aIn,
T *  apDet = NULL 
)
sMatrix<T>& ni::MatrixTransformInverse ( sMatrix< T > &  Out,
const sMatrix< T > &  M 
)
tBool ni::MatrixIsIdentity ( const sMatrix< T > &  M)
sMatrix<T>& ni::MatrixLookAtRH ( sMatrix< T > &  Out,
const sVec3< T > &  Eye,
const sVec3< T > &  At,
const sVec3< T > &  Up 
)
sMatrix<T>& ni::MatrixLookAtLH ( sMatrix< T > &  Out,
const sVec3< T > &  Eye,
const sVec3< T > &  At,
const sVec3< T > &  Up 
)
sMatrix<T>& ni::MatrixMultiply ( sMatrix< T > &  Out,
const sMatrix< T > &  M1,
const sMatrix< T > &  M2 
)
sMatrix<T>* ni::MatrixMultiply ( sMatrix< T > *  Out,
const sMatrix< T > *  M1,
const sMatrix< T > *  M2 
)
sMatrix<T>& ni::MatrixOrthoRH ( sMatrix< T > &  Out,
w,
h,
zn,
zf 
)
sMatrix<T>& ni::MatrixOrthoLH ( sMatrix< T > &  Out,
w,
h,
zn,
zf 
)
sMatrix<T>& ni::MatrixOrthoOffCenterRH ( sMatrix< T > &  Out,
l,
r,
t,
b,
zn,
zf 
)
sMatrix<T>& ni::MatrixOrthoOffCenterLH ( sMatrix< T > &  Out,
l,
r,
t,
b,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveRH ( sMatrix< T > &  Out,
w,
h,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveLH ( sMatrix< T > &  Out,
w,
h,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveFovRH ( sMatrix< T > &  Out,
fovy,
aspect,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveFovLH ( sMatrix< T > &  Out,
fovy,
aspect,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveOffCenterRH ( sMatrix< T > &  Out,
l,
r,
t,
b,
zn,
zf 
)
sMatrix<T>& ni::MatrixPerspectiveOffCenterLH ( sMatrix< T > &  Out,
l,
r,
t,
b,
zn,
zf 
)
sMatrix<T>& ni::MatrixReflect ( sMatrix< T > &  Out,
const sVec4< T > &  Plane 
)
ni::sMatrix<T>& ni::MatrixRotationAxis ( ni::sMatrix< T > &  Out,
const ni::sVec3< T > &  V,
angle 
)
sMatrix<T>& ni::MatrixRotationQuat ( sMatrix< T > &  Out,
const sQuat< T > &  Q 
)
sMatrix<T>& ni::MatrixRotationX ( sMatrix< T > &  Out,
angle 
)
sMatrix<T>& ni::MatrixRotationY ( sMatrix< T > &  Out,
angle 
)
sMatrix<T>& ni::MatrixRotationZ ( sMatrix< T > &  Out,
angle 
)
sMatrix<T>& ni::MatrixRotationYawPitchRoll ( sMatrix< T > &  Out,
yaw,
pitch,
roll 
)
sVec3<T> ni::MatrixDecomposeYawPitchRoll ( const sMatrix< T > &  mat)
sMatrix<T>& ni::MatrixScaling ( sMatrix< T > &  Out,
sx,
sy,
sz 
)
sMatrix<T>& ni::MatrixScaling ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixScale ( sMatrix< T > &  Out,
const sMatrix< T > &  M,
const T  x,
const T  y,
const T  z 
)
sMatrix<T>& ni::MatrixScale ( sMatrix< T > &  Out,
const sMatrix< T > &  M,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixScale ( sMatrix< T > &  Out,
const sMatrix< T > &  M,
const T  s 
)
sMatrix<T>& ni::MatrixShadow ( sMatrix< T > &  Out,
const sVec4< T > &  vLight,
const sVec4< T > &  Plane 
)
sMatrix<T>& ni::MatrixTransformation ( sMatrix< T > &  Out,
const sVec3< T > *  pScalingCenter,
const sQuat< T > *  pScalingRotation,
const sVec3< T > *  pScaling,
const sVec3< T > *  pRotationCenter,
const sQuat< T > *  pRotation,
const sVec3< T > *  pTranslation 
)
sMatrix<T>& ni::MatrixTranslation ( sMatrix< T > &  Out,
x,
y,
z 
)
sMatrix<T>& ni::MatrixTranslation ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixTranspose ( sMatrix< T > &  Out,
const sMatrix< T > &  M 
)
sMatrix<T>& ni::MatrixTranspose3x3 ( sMatrix< T > &  Out,
const sMatrix< T > &  M 
)
sMatrix<T>& ni::MatrixTextureOffset2 ( sMatrix< T > &  Out,
fBias,
tI32  nTexW,
tI32  nTexH,
tI32  nDepthBits 
)
sMatrix<T>& ni::MatrixTextureOffset ( sMatrix< T > &  Out,
fBias,
tI32  nTexW,
tI32  nTexH 
)
sMatrix<T>& ni::MatrixLerp ( sMatrix< T > &  Out,
const sMatrix< T > &  A,
const sMatrix< T > &  B,
fFac 
)
sVec3<T>& ni::MatrixGetForward ( sVec3< T > &  Out,
const sMatrix< T > &  M 
)
sVec3<T>& ni::MatrixGetUp ( sVec3< T > &  Out,
const sMatrix< T > &  M 
)
sVec3<T>& ni::MatrixGetRight ( sVec3< T > &  Out,
const sMatrix< T > &  M 
)
sVec3<T>& ni::MatrixGetTranslation ( sVec3< T > &  Out,
const sMatrix< T > &  M 
)
sMatrix<T>& ni::MatrixSetForward ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixSetUp ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixSetRight ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
sMatrix<T>& ni::MatrixSetTranslation ( sMatrix< T > &  Out,
const sVec3< T > &  V 
)
tBool ni::MatrixIsNormal ( const sMatrix< T > &  M,
epsilon = niEpsilon5 
)
tBool ni::MatrixIsOrthogonal ( const sMatrix< T > &  M,
epsilon = niEpsilon5 
)
tBool ni::MatrixIsOrthoNormal ( const sMatrix< T > &  M,
epsilon = niEpsilon5 
)
sMatrix<T>& ni::MatrixSetRotation ( sMatrix< T > &  Out,
const sMatrix< T > &  M 
)
sVec3<T>& ni::MatrixToEuler ( const sMatrix< T > &  M,
sVec3< T > &  euler 
)
sMatrix<T>& ni::MatrixToCoordinateSystem ( sMatrix< T > &  Out,
const sVec3< T > &  avRight,
const sVec3< T > &  avUp,
const sVec3< T > &  avFwd,
const sVec3< T > &  avOrg = sVec3<T>::Zero() 
)
sMatrix<T>* ni::MatrixOrthogonalize ( sMatrix< T > &  Out,
const sMatrix< T > &  In,
const T  epsilon = (T)niEpsilon5 
)
sMatrix<T>& ni::MatrixNormalize ( sMatrix< T > &  Out,
const sMatrix< T > &  In 
)
sMatrix<T>& ni::MatrixSetScale ( sMatrix< T > &  Out,
const sMatrix< T > &  In,
const sVec3f &  avScale 
)
sVec3<T>& ni::MatrixGetProjectedTranslation ( sVec3< T > &  Out,
const sMatrix< T > &  M,
T *  pDeterminant = NULL 
)
sMatrix<T>& ni::MatrixSetProjectedTranslation ( sMatrix< T > &  Out,
const sVec3< T > &  avT 
)
sMatrix<T>& ni::MatrixSetNotRotation ( sMatrix< T > &  Out,
const sMatrix< T > &  M 
)
sMatrix<T>& ni::MatrixRotate ( sMatrix< T > &  Out,
const sMatrix< T > &  M1,
const sMatrix< T > &  M2 
)
sMatrix<T> ni::MatrixRotationPivot ( sMatrix< T > &  aOut,
const sMatrix< T > &  aM2,
const sVec3< T > &  avPivot 
)
sMatrix<T> ni::MatrixRotationPivotAndScale ( sMatrix< T > &  aOut,
const sMatrix< T > &  aM2,
const sVec3< T > &  avPivot,
const sVec3< T > &  avScale 
)
sMatrix<T>& ni::MatrixScalingH ( sMatrix< T > &  Out,
sx,
sy,
sz,
sh 
)
sMatrix<T>& ni::MatrixScalingH ( sMatrix< T > &  Out,
const sVec4< T > &  aR 
)
sMatrix<T>& ni::MatrixRotationXYZ ( sMatrix< T > &  Out,
x,
y,
z 
)
sMatrix<T>& ni::MatrixRotationXYZ ( sMatrix< T > &  Out,
const sVec3< T > &  aR 
)
sMatrix<T>& ni::MatrixRotationZYX ( sMatrix< T > &  Out,
x,
y,
z 
)
sMatrix<T>& ni::MatrixRotationZYX ( sMatrix< T > &  Out,
const sVec3< T > &  aR 
)
sVec3<T>& ni::MatrixGetLocalScale ( sVec3< T > &  aS,
const sMatrix< T > &  In 
)
sVec3<T>& ni::MatrixGetLocalScaleSq ( sVec3< T > &  aS,
const sMatrix< T > &  In 
)
void ni::MatrixDecompose ( const sMatrix< T > &  In,
sVec3< T > &  aT,
sVec3< T > &  aR,
sVec4< T > &  aS,
const T  aEps = (T)niEpsilon4 
)
Remarks
Recompose the matrix with the formula : scale * rotation [z*y*x order] * translation = original matrix if inverted is true (aS.w < 0.0), then negate scale and the above formula will be correct.
void ni::MatrixDecomposeQ ( const sMatrix< T > &  In,
sVec3< T > &  aT,
sQuat< T > &  aR,
sVec4< T > &  aS,
const T  aEps = (T)niEpsilon5 
)
sMatrix<T>& ni::MatrixCompose ( sMatrix< T > &  Out,
const sVec3< T > &  aT,
const sVec3< T > &  aR,
const sVec4< T > &  aS 
)
sMatrix<T>& ni::MatrixComposeQ ( sMatrix< T > &  Out,
const sVec3< T > &  aT,
const sQuat< T > &  aR,
const sVec4< T > &  aS 
)
sMatrix<T>& ni::MatrixViewport ( sMatrix< T > &  Out,
const sVec4< T > &  aVP,
const T  aMinZ,
const T  aMaxZ 
)
const sMatrix<T>& ni::MatrixAdjustViewport ( sMatrix< T > &  Out,
const sVec4< T > &  aContextVP,
const sVec4< T > &  aVirtualVP,
const T  afMinZ,
const T  afMaxZ 
)
T ni::MatrixGetFovV ( const sMatrix< T > &  aMtx)
sVec3<T>& ni::MatrixDecomposeGetZYX ( sVec3< T > &  aR,
const sMatrix< T > &  In,
const T  aEps = (T)niEpsilon4 
)
sQuat<T>& ni::MatrixDecomposeGetQ ( sQuat< T > &  aR,
const sMatrix< T > &  In,
const T  aEps = (T)niEpsilon4 
)
sVec4<T>& ni::MatrixDecomposeGetScale ( sVec4< T > &  aS,
const sMatrix< T > &  In,
const T  aEps = (T)niEpsilon4 
)
sVec3<T>& ni::MatrixDecomposeGetTranslation ( sVec3< T > &  aT,
const sMatrix< T > &  In 
)
sMatrix<T> ni::MatrixFlipProjectionY ( const sMatrix< T > &  aMatrix)
sMatrix<T> ni::MatrixProjection2D ( const T  afOrthoProjectionOffset,
const sRect< T > &  aRect,
const T  afVerticalFov,
const sVec2< T > &  aCameraPos = sVec2<T>::Zero() 
)

Compute a projection matrix to do pixel perfect 2d rendering.

Parameters
afOrthoProjectionOffsetis the projection offset to do pixel perfect mapping, usually retrieved from ultof(iGraphicsDriver::GetCaps(eGraphicsCaps_OrthoProjectionOffset)).
aRectthe 2d canvas size.
afVerticalFov,if> 0 creates a perspective matrix with the specified fov instead of a ortho projection.
aCameraPos,x& y offset of the camera afVerticalFov is specified.
Remarks
View matrix should be identity with this projection matrix.
T ni::PlaneDot ( const sVec4< T > &  P,
const sVec4< T > &  V 
)
T ni::PlaneDotCoord ( const sVec4< T > &  P,
const sVec3< T > &  V 
)
T ni::PlaneDistance ( const sVec4< T > &  P,
const sVec3< T > &  V 
)
T ni::PlaneDotNormal ( const sVec4< T > &  P,
const sVec3< T > &  V 
)
sVec4<T>& ni::PlaneFromPointNormal ( sVec4< T > &  Out,
const sVec3< T > &  vPoint,
const sVec3< T > &  vNormal 
)
sVec4<T>& ni::PlaneFromPoints ( sVec4< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
const sVec3< T > &  V3 
)
sVec3<T>* ni::PlaneIntersectLine ( const sVec4< T > &  P,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
sVec3< T > *  pOut = NULL,
T *  percent = NULL 
)
sVec3<T>* ni::PlaneIntersectRay ( const sVec4< T > &  P,
const sVec3< T > &  avRayPos,
const sVec3< T > &  avRayDir,
sVec3< T > *  pOut = NULL,
T *  dist = NULL 
)
sVec4<T>* ni::PlaneNormalize ( sVec4< T > &  Out,
const sVec4< T > &  P 
)
sVec4<T>* ni::PlaneNormalize ( sVec4< T > &  Out)
sVec4<T>& ni::PlaneTransform ( sVec4< T > &  Out,
const sVec4< T > &  P,
const sMatrix< T > &  M 
)
sVec4<T>& ni::PlaneTransformInversedMatrix ( sVec4< T > &  Out,
const sVec4< T > &  P,
const sMatrix< T > &  M 
)
sVec3<T>* ni::PlaneIntersection ( sVec3< T > &  Out,
const sVec4< T > &  PA,
const sVec4< T > &  PB,
const sVec4< T > &  PC 
)
sVec3<T>& ni::PlaneClosest ( sVec3< T > &  Out,
const sVec4< T > &  P,
const sVec3< T > &  A 
)
ePlaneType ni::PlaneType ( const sVec4< T > &  Plane)
ePlaneType ni::PlaneMaxType ( const sVec4< T > &  Plane)
sMatrix<T>& ni::PlaneExtractCoordinateSystem ( sMatrix< T > &  Out,
const sVec4< T > &  Plane,
tBool  abTranspose,
const sVec3< T > *  apFwdDir,
const sVec3< T > *  apOrigin 
)

The output matrix will contain the coordinate system that corespond to the plane. Up vector is the plane normal. Right and Fwd lies on the plane. If not NULL apFwdDir is the direction toward which the forward vector should be the closest. By example if you want the forward vector to be the one that points down you'd pass sVec3f::OpYAxis() here.

tBool ni::PlaneIntersectSphere ( const sVec4< T > &  plane,
const sVec3< T > &  pos,
radius 
)
sQuat<T>& ni::QuatBaryCentric ( sQuat< T > &  Out,
const sQuat< T > &  Q1,
const sQuat< T > &  Q2,
const sQuat< T > &  Q3,
f,
g 
)
sQuat<T>& ni::QuatConjugate ( sQuat< T > &  Out,
const sQuat< T > &  Q 
)
T ni::QuatDot ( const sQuat< T > &  Q1,
const sQuat< T > &  Q2 
)
sQuat<T>& ni::QuatExp ( sQuat< T > &  Out,
const sQuat< T > &  Q 
)
sQuat<T>& ni::QuatIdentity ( sQuat< T > &  Out)
sQuat<T>& ni::QuatInverse ( sQuat< T > &  Out,
const sQuat< T > &  Q 
)
tBool ni::QuatIsIdentity ( const sQuat< T > &  Q)
T ni::QuatLength ( const sQuat< T > &  Q)
T ni::QuatLengthSq ( const sQuat< T > &  Q)
sQuat<T>& ni::QuatLn ( sQuat< T > &  Out,
const sQuat< T > &  Q 
)
sQuat<T>& ni::QuatMultiply ( sQuat< T > &  Out,
const sQuat< T > &  Q1,
const sQuat< T > &  Q2 
)
sQuat<T>& ni::QuatNormalize ( sQuat< T > &  Out,
const sQuat< T > &  Q 
)
sQuat<T>& ni::QuatNormalize ( sQuat< T > &  Out)
sQuat<T>& ni::QuatRotationAxis ( sQuat< T > &  Out,
const sVec3< T > &  V,
angle 
)
sQuat<T>& ni::QuatRotateX ( sQuat< T > &  Out,
const sQuat< T > &  Src,
angle 
)
sQuat<T>& ni::QuatRotateY ( sQuat< T > &  Out,
const sQuat< T > &  Src,
angle 
)
sQuat<T>& ni::QuatRotateZ ( sQuat< T > &  Out,
const sQuat< T > &  Src,
angle 
)
sQuat<T>& ni::QuatRotationX ( sQuat< T > &  Out,
angle 
)
sQuat<T>& ni::QuatRotationY ( sQuat< T > &  Out,
angle 
)
sQuat<T>& ni::QuatRotationZ ( sQuat< T > &  Out,
angle 
)
sQuat<T>& ni::QuatRotationMatrix ( sQuat< T > &  Out,
const sMatrix< T > &  M 
)
sQuat<T>& ni::QuatRotationYawPitchRoll ( sQuat< T > &  Out,
const T  yaw,
const T  pitch,
const T  roll 
)
sQuat<T>& ni::QuatRotationVector ( sQuat< T > &  Out,
const sVec3< T > &  vFrom,
const sVec3< T > &  vTo 
)
sQuat<T>& ni::QuatSlerp ( sQuat< T > &  Out,
const sQuat< T > &  Q1,
const sQuat< T > &  Q2,
t,
eQuatSlerp  mode = eQuatSlerp_Short 
)
sQuat<T>& ni::QuatSquad ( sQuat< T > &  Out,
const sQuat< T > &  Q1,
const sQuat< T > &  Q2,
const sQuat< T > &  Q3,
const sQuat< T > &  Q4,
t 
)
sVec3<T>& ni::QuatGetAxis ( sVec3< T > &  vAxis,
const sQuat< T > &  Q 
)
T ni::QuatGetAngle ( const sQuat< T > &  Q)
void ni::QuatToAxisAngle ( const sQuat< T > &  Q,
sVec3< T > &  vAxis,
T &  Angle 
)
sVec3<T>& ni::QuatToEuler ( const sQuat< T > &  Q,
sVec3< T > &  euler 
)
sQuat<T>& ni::QuatRandom ( sQuat< T > &  aQ)
sQuat<T>& ni::QuatRotationZYX ( sQuat< T > &  Out,
rx,
ry,
rz 
)
sQuat<T>& ni::QuatRotationZYX ( sQuat< T > &  Out,
const sVec3< T > &  V 
)
sQuat<T>& ni::QuatRotationXYZ ( sQuat< T > &  Out,
rx,
ry,
rz 
)
sQuat<T>& ni::QuatRotationXYZ ( sQuat< T > &  Out,
const sVec3< T > &  V 
)
sVec2<T>& ni::VecClamp ( sVec2< T > &  Out,
const sVec2< T > &  V,
const sVec2< T > &  aMin = sVec2<T>::Zero(),
const sVec2< T > &  aMax = sVec2<T>::One() 
)
sVec2<T>& ni::VecAdd ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecMul ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecDiv ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecMAD ( sVec2< T > &  Out,
const sVec2< T > &  A,
const sVec2< T > &  B,
const sVec2< T > &  C 
)
sVec2<T>& ni::VecMAD ( sVec2< T > &  Out,
const sVec2< T > &  A,
scale,
const sVec2< T > &  B 
)
sVec2<T>& ni::VecMAD ( sVec2< T > &  Out,
const sVec2< T > &  A,
scale,
add 
)
sVec2<T>& ni::VecSub ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecBaryCentric ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2,
const sVec2< T > &  V3,
f,
g 
)
sVec2<T>& ni::VecCatmullRom ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2,
const sVec2< T > &  V3,
const sVec2< T > &  V4,
s 
)
T ni::VecCCW ( const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
T ni::VecDot ( const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
T ni::VecDot ( const sVec2< T > *  V1,
const sVec2< T > *  V2 
)
sVec2<T>& ni::VecHermite ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  T1,
const sVec2< T > &  V2,
const sVec2< T > &  T2,
s 
)
T ni::VecLength ( const sVec2< T > &  V)
T ni::VecDistance ( const sVec2< T > &  A,
const sVec2< T > &  B 
)
sVec2<T>& ni::VecSetLength ( sVec2< T > &  Out,
const sVec2< T > &  V,
l 
)
T ni::VecLengthSq ( const sVec2< T > &  V)
sVec2<T>& ni::VecMaximize ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecMinimize ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2 
)
sVec2<T>& ni::VecNormalize ( sVec2< T > &  Out,
const sVec2< T > &  V 
)
sVec2<T>* ni::VecNormalize ( sVec2< T > *  Out,
const sVec2< T > *  V 
)
sVec2<T>& ni::VecNormalize ( sVec2< T > &  Out)
sVec2<T>& ni::VecScale ( sVec2< T > &  Out,
const sVec2< T > &  V,
s 
)
sVec4<T>& ni::VecTransform ( sVec4< T > &  Out,
const sVec2< T > &  V,
const sMatrix< T > &  M 
)
sVec4<T>* ni::VecTransform ( sVec4< T > *  Out,
const sVec2< T > *  V,
const sMatrix< T > *  M 
)
sVec2<T>& ni::VecTransformCoord ( sVec2< T > &  Out,
const sVec2< T > &  V,
const sMatrix< T > &  M 
)
sVec2<T>* ni::VecTransformCoord ( sVec2< T > *  Out,
const sVec2< T > *  V,
const sMatrix< T > *  M 
)
sVec2<T>& ni::VecTransformNormal ( sVec2< T > &  Out,
const sVec2< T > &  V,
const sMatrix< T > &  M 
)
sVec2<T>* ni::VecTransformNormal ( sVec2< T > *  Out,
const sVec2< T > *  V,
const sMatrix< T > *  M 
)
sVec2<T>& ni::VecAbs ( sVec2< T > &  Out,
const sVec2< T > &  V 
)
sVec2<T>& ni::VecLerp ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2,
fac 
)
sVec2<T>& ni::VecLerp ( sVec2< T > &  Out,
const sVec2< T > &  V1,
const sVec2< T > &  V2,
const sVec2< T > &  V3 
)
tBool ni::VecIsNormal ( const sVec2< T > &  v,
epsilon = niEpsilon5 
)
sVec2<T>& ni::VecInverse ( sVec2< T > &  Out,
const sVec2< T > &  V 
)
tBool ni::VecEqual ( const sVec2< T > &  A,
const sVec2< T > &  B,
epsilon = niEpsilon5 
)
int ni::VecMaxAxis ( const sVec2< T > &  V)
sVec3<T>& ni::VecClamp ( sVec3< T > &  Out,
const sVec3< T > &  V,
const sVec3< T > &  aMin = sVec3<T>::Zero(),
const sVec3< T > &  aMax = sVec3<T>::One() 
)
sVec3<T>& ni::VecAdd ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecSub ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecMul ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecDiv ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecMAD ( sVec3< T > &  Out,
const sVec3< T > &  A,
const sVec3< T > &  B,
const sVec3< T > &  C 
)
sVec3<T>& ni::VecMAD ( sVec3< T > &  Out,
const sVec3< T > &  A,
const T  scale,
const sVec3< T > &  B 
)
sVec3<T>& ni::VecBaryCentric ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
const sVec3< T > &  V3,
f,
g 
)
sVec3<T>& ni::VecCatmullRom ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
const sVec3< T > &  V3,
const sVec3< T > &  V4,
s 
)
sVec3<T>& ni::VecCross ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>* ni::VecCross ( sVec3< T > *  Out,
const sVec3< T > *  V1,
const sVec3< T > *  V2 
)
T ni::VecDot ( const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
T ni::VecDot ( const sVec3< T > *  V1,
const sVec3< T > *  V2 
)
sVec3<T>& ni::VecHermite ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  T1,
const sVec3< T > &  V2,
const sVec3< T > &  T2,
s 
)
T ni::VecLength ( const sVec3< T > &  V)
T ni::VecDistance ( const sVec3< T > &  A,
const sVec3< T > &  B 
)
sVec3<T>& ni::VecSetLength ( sVec3< T > &  Out,
const sVec3< T > &  V,
l 
)
T ni::VecLengthSq ( const sVec3< T > &  V)
sVec3<T>& ni::VecMaximize ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecMinimize ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2 
)
sVec3<T>& ni::VecNormalize ( sVec3< T > &  Out,
const sVec3< T > &  V 
)
sVec3<T>* ni::VecNormalize ( sVec3< T > *  Out,
const sVec3< T > *  V 
)
sVec3<T>& ni::VecNormalize ( sVec3< T > &  Out)
sVec3<T>& ni::VecScale ( sVec3< T > &  Out,
const sVec3< T > &  V,
s 
)
sVec4<T>& ni::VecTransform ( sVec4< T > &  Out,
const sVec3< T > &  V,
const sMatrix< T > &  M 
)
sVec4<T>* ni::VecTransform ( sVec4< T > *  Out,
const sVec3< T > *  V,
const sMatrix< T > *  M 
)
sVec3<T>& ni::VecTransformCoord ( sVec3< T > &  Out,
const sVec3< T > &  V,
const sMatrix< T > &  M 
)
sVec3<T>* ni::VecTransformCoord ( sVec3< T > *  Out,
const sVec3< T > *  V,
const sMatrix< T > *  M 
)
sVec3<T>& ni::VecTransformNormal ( sVec3< T > &  Out,
const sVec3< T > &  V,
const sMatrix< T > &  M 
)
sVec3<T>* ni::VecTransformNormal ( sVec3< T > *  Out,
const sVec3< T > *  V,
const sMatrix< T > *  M 
)
sVec3<T>& ni::VecAbs ( sVec3< T > &  Out,
const sVec3< T > &  V 
)
sVec3<T>& ni::VecLerp ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
fac 
)
sVec3<T>& ni::VecLerp ( sVec3< T > &  Out,
const sVec3< T > &  V1,
const sVec3< T > &  V2,
const sVec3< T > &  V3 
)
tBool ni::VecIsNormal ( const sVec3< T > &  v,
epsilon = niEpsilon5 
)
sVec3<T>& ni::VecInverse ( sVec3< T > &  Out,
const sVec3< T > &  V 
)
sVec3<T>& ni::VecToViewport ( sVec3< T > &  aOut,
const ni::sVec3< T > &  avProjected,
const ni::sRect< T > &  aRect 
)
sVec3<T>& ni::VecProject ( sVec3< T > &  aOut,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  amtxWVP,
const ni::sRect< T > &  aRect 
)
sVec4<T>& ni::VecProjectRHW ( sVec4< T > &  aOut,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  mtxWVP,
const ni::sRect< T > &  aRect 
)
sVec3<T>& ni::VecUnproject ( sVec3< T > &  avOut,
const sVec3< T > &  avIn,
afVPX,
afVPY,
afVPW,
afVPH,
const sMatrix< T > &  amtxViewProj 
)
tBool ni::VecEqual ( const sVec3< T > &  A,
const sVec3< T > &  B,
epsilon = niEpsilon5 
)
sVec3<T>& ni::VecReflect ( sVec3< T > &  Out,
const sVec3< T > &  Dir,
const sVec3< T > &  Normal 
)
T ni::VecAngle ( const sVec3< T > &  v1,
const sVec3< T > &  v2 
)
int ni::VecMaxAxis ( const sVec3< T > &  V)
ni::sVec3<T> ni::GetScreenPosition ( const ni::sVec3< T > &  avPos,
const sMatrix< T > &  mtxVP,
const ni::sRect< T > &  aRect 
)
void ni::ComputeTangentSpace ( const sVec3< T > &  PA,
const sVec2< T > &  TA,
const sVec3< T > &  PB,
const sVec2< T > &  TB,
const sVec3< T > &  PC,
const sVec2< T > &  TC,
sVec3< T > &  vTangent0,
sVec3< T > &  vTangent1 
)

Compute texture space of a triangle.

T ni::ComputePixelScaleX ( const sVec3< T > &  pos,
const sMatrix< T > &  worldView,
const sMatrix< T > &  proj,
const ni::sRect< T > &  aRect 
)
T ni::ComputePixelScaleY ( const sVec3< T > &  pos,
const sMatrix< T > &  worldView,
const sMatrix< T > &  proj,
const ni::sRect< T > &  aRect 
)
T ni::ComputePixelWorldSizeX ( const T  afPixelSize,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  mtxWorldView,
const ni::sMatrix< T > &  mtxProj,
const ni::sRect< T > &  aRect 
)
T ni::ComputePixelWorldSizeY ( const T  afPixelSize,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  mtxWorldView,
const ni::sMatrix< T > &  mtxProj,
const ni::sRect< T > &  aRect 
)
sVec2<T> ni::ComputePixelWorldSizeVec2 ( const T  afPixelSize,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  mtxWorldView,
const ni::sMatrix< T > &  mtxProj,
const ni::sRect< T > &  aRect 
)
T ni::ComputePixelWorldSize ( const T  afPixelSize,
const ni::sVec3< T > &  avPos,
const ni::sMatrix< T > &  mtxWorldView,
const ni::sMatrix< T > &  mtxProj,
const ni::sRect< T > &  aRect 
)
ni::sVec3<T>& ni::VecSphericalToCartesian ( ni::sVec3< T > &  aOut,
const ni::sVec3< T > &  avS 
)
ni::sVec3<T>& ni::VecCartesianToSpherical ( ni::sVec3< T > &  aOut,
const ni::sVec3< T > &  avC 
)
ni::sVec3<T>& ni::VecOrbitPitch ( ni::sVec3< T > &  aOut,
const ni::sVec3< T > &  aTarget,
const ni::sVec3< T > &  aPos,
afPitch 
)
ni::sVec3<T>& ni::VecOrbitYaw ( ni::sVec3< T > &  aOut,
const ni::sVec3< T > &  aTarget,
const ni::sVec3< T > &  aPos,
afYaw 
)
ni::sVec3<T>& ni::VecOrbitYawPitch ( ni::sVec3< T > &  aOut,
const ni::sVec3< T > &  aTarget,
const ni::sVec3< T > &  aPos,
afYaw,
afPitch 
)
sVec3<T>& ni::RandomDirection ( sVec3< T > &  vDirOut,
const sVec3< T > &  vN,
int4 *  aPRNG = ni_prng_global() 
)

Generates a random direction in the upper hemisphere.

sVec4<T>& ni::VecClamp ( sVec4< T > &  Out,
const sVec4< T > &  V,
const sVec4< T > &  aMin = sVec4<T>::Zero(),
const sVec4< T > &  aMax = sVec4<T>::One() 
)
sVec4<T>& ni::VecAdd ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecSub ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecMul ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecDiv ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecMAD ( sVec4< T > &  Out,
const sVec4< T > &  A,
const sVec4< T > &  B,
const sVec4< T > &  C 
)
sVec4<T>& ni::VecMAD ( sVec4< T > &  Out,
const sVec4< T > &  A,
const T  scale,
const sVec4< T > &  B 
)
sVec4<T>& ni::VecBaryCentric ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2,
const sVec4< T > &  V3,
f,
g 
)
sVec4<T>& ni::VecCatmullRom ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2,
const sVec4< T > &  V3,
const sVec4< T > &  V4,
s 
)
sVec4<T>& ni::VecCross ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2,
const sVec4< T > &  V3 
)
sVec4<T>* ni::VecCross ( sVec4< T > *  Out,
const sVec4< T > *  V1,
const sVec4< T > *  V2,
const sVec4< T > *  V3 
)
T ni::VecDot ( const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
T ni::VecDot ( const sVec4< T > *  V1,
const sVec4< T > *  V2 
)
sVec4<T>& ni::VecHermite ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  T1,
const sVec4< T > &  V2,
const sVec4< T > &  T2,
s 
)
T ni::VecLength ( const sVec4< T > &  V)
T ni::VecDistance ( const sVec4< T > &  A,
const sVec4< T > &  B 
)
sVec4<T>& ni::VecSetLength ( sVec4< T > &  Out,
const sVec4< T > &  V,
l 
)
T ni::VecLengthSq ( const sVec4< T > &  V)
sVec4<T>& ni::VecMaximize ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecMinimize ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2 
)
sVec4<T>& ni::VecNormalize ( sVec4< T > &  Out,
const sVec4< T > &  V 
)
sVec4<T>* ni::VecNormalize ( sVec4< T > *  Out,
const sVec4< T > *  V 
)
sVec4<T>& ni::VecNormalize ( sVec4< T > &  Out)
sVec4<T>& ni::VecScale ( sVec4< T > &  Out,
const sVec4< T > &  V,
s 
)
sVec4<T>& ni::VecTransform ( sVec4< T > &  Out,
const sVec4< T > &  V,
const sMatrix< T > &  M 
)
sVec4<T>* ni::VecTransform ( sVec4< T > *  Out,
const sVec4< T > *  V,
const sMatrix< T > *  M 
)
sVec4<T>& ni::VecAbs ( sVec4< T > &  Out,
const sVec4< T > &  V 
)
sVec4<T>& ni::VecLerp ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2,
fac 
)
sVec4<T>& ni::VecLerp ( sVec4< T > &  Out,
const sVec4< T > &  V1,
const sVec4< T > &  V2,
const sVec4< T > &  V3 
)
tBool ni::VecIsNormal ( const sVec4< T > &  v,
epsilon = niEpsilon5 
)
sVec4<T>& ni::VecInverse ( sVec4< T > &  Out,
const sVec4< T > &  V 
)
tBool ni::VecEqual ( const sVec4< T > &  A,
const sVec4< T > &  B,
epsilon = niEpsilon5 
)
int ni::VecMaxAxis ( const sVec4< T > &  V)
sRect ( )
sRect ( const sVec4< T > &  avVec)
sRect ( const sVec2< T > &  aTopLeft,
const sVec2< T > &  aBottomRight 
)
explicit
sRect ( aLeft,
aTop,
aWidth = 0,
aHeight = 0 
)
explicit
sRect ( const sVec2< T > &  aTopLeft,
aWidth = 0,
aHeight = 0 
)
explicit
void Set ( const sVec2< T > &  aTopLeft,
aWidth,
aHeight 
)

Set the Top Left corner and the size of the rectangle.

void Set ( aLeft,
aTop,
aWidth = 0,
aHeight = 0 
)

Set the Top Left corner and the size of the rectangle.

void SetCorners ( const sVec2< T > &  aTopLeft,
const sVec2< T > &  aBottomRight 
)

Set the rectangle corners.

void SetCorner ( eRectCorners  aCorner,
const sVec2< T > &  aCornerPos 
)

Set a rectangle corner. Adapt the others accordingly.

sVec2< T > GetCorner ( eRectCorners  aCorner) const

Get a rectangle corner.

void SetLeft ( aV)

Set the Left edge.

T GetLeft ( ) const

Get the Left edge.

void SetRight ( aV)

Set the Right edge.

T GetRight ( ) const

Get the Right edge.

void SetTop ( aV)

Set the Top edge.

T GetTop ( ) const

Get the Top edge.

void SetBottom ( aV)

Set the Bottom edge.

T GetBottom ( ) const

Get the Bottom edge.

void SetWidth ( aWidth)

Set the width of the rectangle.

T GetWidth ( ) const

Get the width of the rectangle.

void SetHeight ( aHeight)

Set the height of the rectangle.

T GetHeight ( ) const

Get the height of the rectangle.

void SetSize ( aWidth,
aHeight 
)

Set the width and height of the rectangle.

void SetSize ( const sVec2< T > &  aSize)

Set the size of the rectangle.

sVec2< T > GetSize ( ) const

Get the size of the rectangle.

void Move ( const sVec2< T > &  aMoveOffset)

Move the rectangle of the given offsets (relative movement).

void MoveTo ( const sVec2< T > &  aPos,
eRectCorners  aCorner = eRectCorners_TopLeft 
)

Move the rectangle to the given position (absolute movement).

Parameters
aPosindicates where to move to.
aCorneris indicates the anchor point.
void Inflate ( const sVec2< T > &  aV)

Inflate the size of the rectangle.

Remarks
Negative number will "deflate" the rectangle.
void Normalize ( )

Normalize the rectangle. Make sure that width and height are positive.

void SetCenter ( const sVec2< T > &  avPos)

Set the center point of the rectangle.

sVec2< T > GetCenter ( ) const

Get the center point of the rectangle.

tBool IntersectRect ( const sRect< T > &  aRect) const

Return eTrue if the given rectangle intersect this rectangle.

Remarks
Intersection test doesnt include the Bottom and Right edges.
tBool Intersect ( const sVec2< T > &  aPoint) const

Return eTrue if the given point intersect/is inside this rectangle.

Remarks
Intersection test doesnt include the Bottom and Right edges.
sRect< T > ClipRect ( const sRect< T > &  aRect) const

clips the rectangle passed against himself and returns the resulting rectangle

sRect< T > ComputeFrameCenter ( Left,
Right,
Top,
Bottom 
) const

Get the center of the a frame with the specified borders.

sRect< T > & operator+= ( const sVec2< T > &  v)

+= operator, move the rectangle.

sRect< T > operator+ ( const sVec2< T > &  v) const

+= operator, move the rectangle.

sRect< T > & operator-= ( const sVec2< T > &  v)

-= operator, move the rectangle.

sRect< T > operator- ( const sVec2< T > &  v) const

-= operator, move the rectangle.

sRect< T > & operator= ( const sVec2< T > &  v)

= operator, move the rectangle to the specified position, Top Left is the anchor corner.