|
| Vec4 ()=default |
| Constructor.
|
|
| Vec4 (const Vec4 &inRHS)=default |
|
Vec4 & | operator= (const Vec4 &inRHS)=default |
|
JPH_INLINE | Vec4 (Vec3Arg inRHS) |
| WARNING: W component undefined!
|
|
JPH_INLINE | Vec4 (Vec3Arg inRHS, float inW) |
|
JPH_INLINE | Vec4 (Type inRHS) |
|
JPH_INLINE | Vec4 (float inX, float inY, float inZ, float inW) |
| Create a vector from 4 components.
|
|
JPH_INLINE float | GetX () const |
| Get individual components.
|
|
JPH_INLINE float | GetY () const |
|
JPH_INLINE float | GetZ () const |
|
JPH_INLINE float | GetW () const |
|
JPH_INLINE void | SetX (float inX) |
| Set individual components.
|
|
JPH_INLINE void | SetY (float inY) |
|
JPH_INLINE void | SetZ (float inZ) |
|
JPH_INLINE void | SetW (float inW) |
|
JPH_INLINE void | Set (float inX, float inY, float inZ, float inW) |
| Set all components.
|
|
JPH_INLINE float | operator[] (uint inCoordinate) const |
| Get float component by index.
|
|
JPH_INLINE float & | operator[] (uint inCoordinate) |
|
JPH_INLINE bool | operator== (Vec4Arg inV2) const |
| Comparison.
|
|
JPH_INLINE bool | operator!= (Vec4Arg inV2) const |
|
JPH_INLINE bool | IsClose (Vec4Arg inV2, float inMaxDistSq=1.0e-12f) const |
| Test if two vectors are close.
|
|
JPH_INLINE bool | IsNormalized (float inTolerance=1.0e-6f) const |
| Test if vector is normalized.
|
|
JPH_INLINE bool | IsNaN () const |
| Test if vector contains NaN elements.
|
|
JPH_INLINE Vec4 | operator* (Vec4Arg inV2) const |
| Multiply two float vectors (component wise)
|
|
JPH_INLINE Vec4 | operator* (float inV2) const |
| Multiply vector with float.
|
|
JPH_INLINE Vec4 | operator/ (float inV2) const |
| Divide vector by float.
|
|
JPH_INLINE Vec4 & | operator*= (float inV2) |
| Multiply vector with float.
|
|
JPH_INLINE Vec4 & | operator*= (Vec4Arg inV2) |
| Multiply vector with vector.
|
|
JPH_INLINE Vec4 & | operator/= (float inV2) |
| Divide vector by float.
|
|
JPH_INLINE Vec4 | operator+ (Vec4Arg inV2) const |
| Add two float vectors (component wise)
|
|
JPH_INLINE Vec4 & | operator+= (Vec4Arg inV2) |
| Add two float vectors (component wise)
|
|
JPH_INLINE Vec4 | operator- () const |
| Negate.
|
|
JPH_INLINE Vec4 | operator- (Vec4Arg inV2) const |
| Subtract two float vectors (component wise)
|
|
JPH_INLINE Vec4 & | operator-= (Vec4Arg inV2) |
| Subtract two float vectors (component wise)
|
|
JPH_INLINE Vec4 | operator/ (Vec4Arg inV2) const |
| Divide (component wise)
|
|
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> |
JPH_INLINE Vec4 | Swizzle () const |
| Swizzle the elements in inV.
|
|
JPH_INLINE Vec4 | SplatX () const |
| Replicate the X component to all components.
|
|
JPH_INLINE Vec4 | SplatY () const |
| Replicate the Y component to all components.
|
|
JPH_INLINE Vec4 | SplatZ () const |
| Replicate the Z component to all components.
|
|
JPH_INLINE Vec4 | SplatW () const |
| Replicate the W component to all components.
|
|
JPH_INLINE Vec4 | Abs () const |
| Return the absolute value of each of the components.
|
|
JPH_INLINE Vec4 | Reciprocal () const |
| Reciprocal vector (1 / value) for each of the components.
|
|
JPH_INLINE Vec4 | DotV (Vec4Arg inV2) const |
| Dot product, returns the dot product in X, Y and Z components.
|
|
JPH_INLINE float | Dot (Vec4Arg inV2) const |
| Dot product.
|
|
JPH_INLINE float | LengthSq () const |
| Squared length of vector.
|
|
JPH_INLINE float | Length () const |
| Length of vector.
|
|
JPH_INLINE Vec4 | Normalized () const |
| Normalize vector.
|
|
JPH_INLINE void | StoreFloat4 (Float4 *outV) const |
| Store 4 floats to memory.
|
|
JPH_INLINE UVec4 | ToInt () const |
| Convert each component from a float to an int.
|
|
JPH_INLINE UVec4 | ReinterpretAsInt () const |
| Reinterpret Vec4 as a UVec4 (doesn't change the bits)
|
|
JPH_INLINE int | GetSignBits () const |
| Store if X is negative in bit 0, Y in bit 1, Z in bit 2 and W in bit 3.
|
|
JPH_INLINE float | ReduceMin () const |
| Get the minimum of X, Y, Z and W.
|
|
JPH_INLINE float | ReduceMax () const |
| Get the maximum of X, Y, Z and W.
|
|
JPH_INLINE Vec4 | Sqrt () const |
| Component wise square root.
|
|
JPH_INLINE Vec4 | GetSign () const |
| Get vector that contains the sign of each element (returns 1.0f if positive, -1.0f if negative)
|
|
void | SinCos (Vec4 &outSin, Vec4 &outCos) const |
| Calculate the sine and cosine for each element of this vector (input in radians)
|
|
Vec4 | Tan () const |
| Calculate the tangent for each element of this vector (input in radians)
|
|
Vec4 | ASin () const |
|
Vec4 | ACos () const |
|
Vec4 | ATan () const |
| Calculate the arc tangent for each element of this vector (returns value in the range [-PI / 2, PI / 2])
|
|
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> |
Vec4 | Swizzle () const |
|
template<const int Scale> |
Vec4 | sGatherFloat4 (const float *inBase, UVec4Arg inOffsets) |
|
|
static JPH_INLINE Vec4 | sZero () |
| Vector with all zeros.
|
|
static JPH_INLINE Vec4 | sNaN () |
| Vector with all NaN's.
|
|
static JPH_INLINE Vec4 | sReplicate (float inV) |
| Replicate inV across all components.
|
|
static JPH_INLINE Vec4 | sLoadFloat4 (const Float4 *inV) |
| Load 4 floats from memory.
|
|
static JPH_INLINE Vec4 | sLoadFloat4Aligned (const Float4 *inV) |
| Load 4 floats from memory, 16 bytes aligned.
|
|
template<const int Scale> |
static JPH_INLINE Vec4 | sGatherFloat4 (const float *inBase, UVec4Arg inOffsets) |
| Gather 4 floats from memory at inBase + inOffsets[i] * Scale.
|
|
static JPH_INLINE Vec4 | sMin (Vec4Arg inV1, Vec4Arg inV2) |
| Return the minimum value of each of the components.
|
|
static JPH_INLINE Vec4 | sMax (Vec4Arg inV1, Vec4Arg inV2) |
| Return the maximum of each of the components.
|
|
static JPH_INLINE UVec4 | sEquals (Vec4Arg inV1, Vec4Arg inV2) |
| Equals (component wise)
|
|
static JPH_INLINE UVec4 | sLess (Vec4Arg inV1, Vec4Arg inV2) |
| Less than (component wise)
|
|
static JPH_INLINE UVec4 | sLessOrEqual (Vec4Arg inV1, Vec4Arg inV2) |
| Less than or equal (component wise)
|
|
static JPH_INLINE UVec4 | sGreater (Vec4Arg inV1, Vec4Arg inV2) |
| Greater than (component wise)
|
|
static JPH_INLINE UVec4 | sGreaterOrEqual (Vec4Arg inV1, Vec4Arg inV2) |
| Greater than or equal (component wise)
|
|
static JPH_INLINE Vec4 | sFusedMultiplyAdd (Vec4Arg inMul1, Vec4Arg inMul2, Vec4Arg inAdd) |
| Calculates inMul1 * inMul2 + inAdd.
|
|
static JPH_INLINE Vec4 | sSelect (Vec4Arg inNotSet, Vec4Arg inSet, UVec4Arg inControl) |
| Component wise select, returns inNotSet when highest bit of inControl = 0 and inSet when highest bit of inControl = 1.
|
|
static JPH_INLINE Vec4 | sOr (Vec4Arg inV1, Vec4Arg inV2) |
| Logical or (component wise)
|
|
static JPH_INLINE Vec4 | sXor (Vec4Arg inV1, Vec4Arg inV2) |
| Logical xor (component wise)
|
|
static JPH_INLINE Vec4 | sAnd (Vec4Arg inV1, Vec4Arg inV2) |
| Logical and (component wise)
|
|
static JPH_INLINE void | sSort4 (Vec4 &ioValue, UVec4 &ioIndex) |
|
static JPH_INLINE void | sSort4Reverse (Vec4 &ioValue, UVec4 &ioIndex) |
|
static Vec4 | sATan2 (Vec4Arg inY, Vec4Arg inX) |
| Calculate the arc tangent of y / x using the signs of the arguments to determine the correct quadrant (returns value in the range [-PI, PI])
|
|