![]() |
XII Release 0.1.0
|
A 4-component SIMD vector class. More...
#include <SimdVec4f.h>
Public Member Functions | |
XII_DECLARE_POD_TYPE () | |
xiiSimdVec4f (float fXyzw) | |
xiiSimdVec4f (const xiiSimdFloat &fXyzw) | |
xiiSimdVec4f (float x, float y, float z, float w=1.0f) | |
xiiSimdVec4f (xiiInternal::QuadFloat v) | |
void | Set (float fXyzw) |
void | Set (float x, float y, float z, float w) |
void | SetX (const xiiSimdFloat &f) |
void | SetY (const xiiSimdFloat &f) |
void | SetZ (const xiiSimdFloat &f) |
void | SetW (const xiiSimdFloat &f) |
void | SetZero () |
template<xiiInt32 N> | |
void | Load (const float *pFloats) |
template<xiiInt32 N> | |
void | Store (float *pFloats) const |
template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdVec4f | GetReciprocal () const |
template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdVec4f | GetSqrt () const |
template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdVec4f | GetInvSqrt () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdFloat | GetLength () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdFloat | GetInvLength () const |
template<xiiInt32 N> | |
xiiSimdFloat | GetLengthSquared () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdFloat | GetLengthAndNormalize () |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdVec4f | GetNormalized () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
void | Normalize () |
template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
void | NormalizeIfNotZero (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >()) |
template<xiiInt32 N> | |
bool | IsZero () const |
template<xiiInt32 N> | |
bool | IsZero (const xiiSimdFloat &fEpsilon) const |
template<xiiInt32 N> | |
bool | IsNormalized (const xiiSimdFloat &fEpsilon=xiiMath::HugeEpsilon< float >()) const |
template<xiiInt32 N> | |
bool | IsNaN () const |
template<xiiInt32 N> | |
bool | IsValid () const |
template<xiiInt32 N> | |
xiiSimdFloat | GetComponent () const |
xiiSimdFloat | GetComponent (xiiInt32 i) const |
xiiSimdFloat | x () const |
xiiSimdFloat | y () const |
xiiSimdFloat | z () const |
xiiSimdFloat | w () const |
template<xiiSwizzle::Enum s> | |
xiiSimdVec4f | Get () const |
template<xiiSwizzle::Enum s> | |
xiiSimdVec4f | GetCombined (const xiiSimdVec4f &other) const |
x = this[s0], y = this[s1], z = other[s2], w = other[s3] | |
xiiSimdVec4f | operator- () const |
xiiSimdVec4f | operator+ (const xiiSimdVec4f &v) const |
xiiSimdVec4f | operator- (const xiiSimdVec4f &v) const |
xiiSimdVec4f | operator* (const xiiSimdFloat &f) const |
xiiSimdVec4f | operator/ (const xiiSimdFloat &f) const |
xiiSimdVec4f | CompMul (const xiiSimdVec4f &v) const |
template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
xiiSimdVec4f | CompDiv (const xiiSimdVec4f &v) const |
xiiSimdVec4f | CompMin (const xiiSimdVec4f &rhs) const |
xiiSimdVec4f | CompMax (const xiiSimdVec4f &rhs) const |
xiiSimdVec4f | Abs () const |
xiiSimdVec4f | Round () const |
xiiSimdVec4f | Floor () const |
xiiSimdVec4f | Ceil () const |
xiiSimdVec4f | Trunc () const |
xiiSimdVec4f | Fraction () const |
xiiSimdVec4f | FlipSign (const xiiSimdVec4b &vCmp) const |
xiiSimdVec4f & | operator+= (const xiiSimdVec4f &v) |
xiiSimdVec4f & | operator-= (const xiiSimdVec4f &v) |
xiiSimdVec4f & | operator*= (const xiiSimdFloat &f) |
xiiSimdVec4f & | operator/= (const xiiSimdFloat &f) |
xiiSimdVec4b | IsEqual (const xiiSimdVec4f &rhs, const xiiSimdFloat &fEpsilon) const |
xiiSimdVec4b | operator== (const xiiSimdVec4f &v) const |
xiiSimdVec4b | operator!= (const xiiSimdVec4f &v) const |
xiiSimdVec4b | operator<= (const xiiSimdVec4f &v) const |
xiiSimdVec4b | operator< (const xiiSimdVec4f &v) const |
xiiSimdVec4b | operator>= (const xiiSimdVec4f &v) const |
xiiSimdVec4b | operator> (const xiiSimdVec4f &v) const |
template<xiiInt32 N> | |
xiiSimdFloat | HorizontalSum () const |
template<xiiInt32 N> | |
xiiSimdFloat | HorizontalMin () const |
template<xiiInt32 N> | |
xiiSimdFloat | HorizontalMax () const |
template<xiiInt32 N> | |
xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
xiiSimdVec4f | CrossRH (const xiiSimdVec4f &v) const |
3D cross product, w is ignored. | |
xiiSimdVec4f | GetOrthogonalVector () const |
Generates an arbitrary vector such that Dot<3>(GetOrthogonalVector()) == 0. | |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE void | Load (const float *pFloats) |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE void | Store (float *pFloats) const |
template<xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdVec4f | GetReciprocal () const |
template<xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdVec4f | GetSqrt () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE bool | IsZero () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE bool | IsZero (const xiiSimdFloat &fEpsilon) const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE bool | IsNaN () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE bool | IsValid () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE xiiSimdFloat | GetComponent () const |
template<xiiSwizzle::Enum s> | |
XII_ALWAYS_INLINE xiiSimdVec4f | Get () const |
template<xiiSwizzle::Enum s> | |
XII_ALWAYS_INLINE xiiSimdVec4f | GetCombined (const xiiSimdVec4f &other) const |
template<xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdVec4f | CompDiv (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdFloat | GetLength () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdFloat | GetInvLength () const |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE xiiSimdFloat | GetLengthSquared () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdFloat | GetLengthAndNormalize () |
template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE xiiSimdVec4f | GetNormalized () const |
template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
XII_ALWAYS_INLINE void | Normalize () |
template<xiiInt32 N> | |
XII_ALWAYS_INLINE bool | IsNormalized (const xiiSimdFloat &fEpsilon) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Load (const float *pFloat) |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE void | Store (float *pFloat) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
template<> | |
XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
Static Public Member Functions | |
static xiiSimdVec4f | MakeZero () |
Creates a xiiSimdVec4f that is initialized to zero. | |
static xiiSimdVec4f | MakeNaN () |
Creates a xiiSimdVec4f that is initialized to Not-A-Number (NaN). | |
static xiiSimdVec4f | Select (const xiiSimdVec4b &vCmp, const xiiSimdVec4f &vTrue, const xiiSimdVec4f &vFalse) |
static xiiSimdVec4f | Lerp (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &t) |
static xiiSimdVec4f | MulAdd (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &c) |
static xiiSimdVec4f | MulAdd (const xiiSimdVec4f &a, const xiiSimdFloat &b, const xiiSimdVec4f &c) |
static xiiSimdVec4f | MulSub (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &c) |
static xiiSimdVec4f | MulSub (const xiiSimdVec4f &a, const xiiSimdFloat &b, const xiiSimdVec4f &c) |
static xiiSimdVec4f | CopySign (const xiiSimdVec4f &vMagnitude, const xiiSimdVec4f &vSign) |
Public Attributes | |
xiiInternal::QuadFloat | m_v |
A 4-component SIMD vector class.