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