|
| UVec4 ()=default |
| Constructor.
|
|
| UVec4 (const UVec4 &inRHS)=default |
|
UVec4 & | operator= (const UVec4 &inRHS)=default |
|
JPH_INLINE | UVec4 (Type inRHS) |
|
JPH_INLINE | UVec4 (uint32 inX, uint32 inY, uint32 inZ, uint32 inW) |
| Create a vector from 4 integer components.
|
|
JPH_INLINE bool | operator== (UVec4Arg inV2) const |
| Comparison.
|
|
JPH_INLINE bool | operator!= (UVec4Arg inV2) const |
|
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> |
JPH_INLINE UVec4 | Swizzle () const |
| Swizzle the elements in inV.
|
|
JPH_INLINE uint32 | GetX () const |
| Get individual components.
|
|
JPH_INLINE uint32 | GetY () const |
|
JPH_INLINE uint32 | GetZ () const |
|
JPH_INLINE uint32 | GetW () const |
|
JPH_INLINE void | SetX (uint32 inX) |
| Set individual components.
|
|
JPH_INLINE void | SetY (uint32 inY) |
|
JPH_INLINE void | SetZ (uint32 inZ) |
|
JPH_INLINE void | SetW (uint32 inW) |
|
JPH_INLINE uint32 | operator[] (uint inCoordinate) const |
| Get component by index.
|
|
JPH_INLINE uint32 & | operator[] (uint inCoordinate) |
|
JPH_INLINE UVec4 | operator* (UVec4Arg inV2) const |
| Multiplies each of the 4 integer components with an integer (discards any overflow)
|
|
JPH_INLINE UVec4 | operator+ (UVec4Arg inV2) |
| Adds an integer value to all integer components (discards any overflow)
|
|
JPH_INLINE UVec4 & | operator+= (UVec4Arg inV2) |
| Add two integer vectors (component wise)
|
|
JPH_INLINE UVec4 | SplatX () const |
| Replicate the X component to all components.
|
|
JPH_INLINE UVec4 | SplatY () const |
| Replicate the Y component to all components.
|
|
JPH_INLINE UVec4 | SplatZ () const |
| Replicate the Z component to all components.
|
|
JPH_INLINE UVec4 | SplatW () const |
| Replicate the W component to all components.
|
|
JPH_INLINE Vec4 | ToFloat () const |
| Convert each component from an int to a float.
|
|
JPH_INLINE Vec4 | ReinterpretAsFloat () const |
| Reinterpret UVec4 as a Vec4 (doesn't change the bits)
|
|
JPH_INLINE void | StoreInt4 (uint32 *outV) const |
| Store 4 ints to memory.
|
|
JPH_INLINE void | StoreInt4Aligned (uint32 *outV) const |
| Store 4 ints to memory, aligned to 16 bytes.
|
|
JPH_INLINE bool | TestAnyTrue () const |
| Test if any of the components are true (true is when highest bit of component is set)
|
|
JPH_INLINE bool | TestAnyXYZTrue () const |
| Test if any of X, Y or Z components are true (true is when highest bit of component is set)
|
|
JPH_INLINE bool | TestAllTrue () const |
| Test if all components are true (true is when highest bit of component is set)
|
|
JPH_INLINE bool | TestAllXYZTrue () const |
| Test if X, Y and Z components are true (true is when highest bit of component is set)
|
|
JPH_INLINE int | CountTrues () const |
| Count the number of components that are true (true is when highest bit of component is set)
|
|
JPH_INLINE int | GetTrues () const |
| Store if X is true in bit 0, Y in bit 1, Z in bit 2 and W in bit 3 (true is when highest bit of component is set)
|
|
template<const uint Count> |
JPH_INLINE UVec4 | LogicalShiftLeft () const |
| Shift all components by Count bits to the left (filling with zeros from the left)
|
|
template<const uint Count> |
JPH_INLINE UVec4 | LogicalShiftRight () const |
| Shift all components by Count bits to the right (filling with zeros from the right)
|
|
template<const uint Count> |
JPH_INLINE UVec4 | ArithmeticShiftRight () const |
| Shift all components by Count bits to the right (shifting in the value of the highest bit)
|
|
JPH_INLINE UVec4 | Expand4Uint16Lo () const |
| Takes the lower 4 16 bits and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | Expand4Uint16Hi () const |
| Takes the upper 4 16 bits and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | Expand4Byte0 () const |
| Takes byte 0 .. 3 and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | Expand4Byte4 () const |
| Takes byte 4 .. 7 and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | Expand4Byte8 () const |
| Takes byte 8 .. 11 and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | Expand4Byte12 () const |
| Takes byte 12 .. 15 and expands them to X, Y, Z and W.
|
|
JPH_INLINE UVec4 | ShiftComponents4Minus (int inCount) const |
| Shift vector components by 4 - Count floats to the left, so if Count = 1 the resulting vector is (W, 0, 0, 0), when Count = 3 the resulting vector is (Y, Z, W, 0)
|
|
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> |
UVec4 | Swizzle () const |
|
template<const int Scale> |
UVec4 | sGatherInt4 (const uint32 *inBase, UVec4Arg inOffsets) |
|
template<const uint Count> |
UVec4 | LogicalShiftLeft () const |
|
template<const uint Count> |
UVec4 | LogicalShiftRight () const |
|
template<const uint Count> |
UVec4 | ArithmeticShiftRight () const |
|
|
static JPH_INLINE UVec4 | sZero () |
| Vector with all zeros.
|
|
static JPH_INLINE UVec4 | sReplicate (uint32 inV) |
| Replicate int inV across all components.
|
|
static JPH_INLINE UVec4 | sLoadInt (const uint32 *inV) |
| Load 1 int from memory and place it in the X component, zeros Y, Z and W.
|
|
static JPH_INLINE UVec4 | sLoadInt4 (const uint32 *inV) |
| Load 4 ints from memory.
|
|
static JPH_INLINE UVec4 | sLoadInt4Aligned (const uint32 *inV) |
| Load 4 ints from memory, aligned to 16 bytes.
|
|
template<const int Scale> |
static JPH_INLINE UVec4 | sGatherInt4 (const uint32 *inBase, UVec4Arg inOffsets) |
| Gather 4 ints from memory at inBase + inOffsets[i] * Scale.
|
|
static JPH_INLINE UVec4 | sMin (UVec4Arg inV1, UVec4Arg inV2) |
| Return the minimum value of each of the components.
|
|
static JPH_INLINE UVec4 | sMax (UVec4Arg inV1, UVec4Arg inV2) |
| Return the maximum of each of the components.
|
|
static JPH_INLINE UVec4 | sEquals (UVec4Arg inV1, UVec4Arg inV2) |
| Equals (component wise)
|
|
static JPH_INLINE UVec4 | sSelect (UVec4Arg inNotSet, UVec4Arg 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 UVec4 | sOr (UVec4Arg inV1, UVec4Arg inV2) |
| Logical or (component wise)
|
|
static JPH_INLINE UVec4 | sXor (UVec4Arg inV1, UVec4Arg inV2) |
| Logical xor (component wise)
|
|
static JPH_INLINE UVec4 | sAnd (UVec4Arg inV1, UVec4Arg inV2) |
| Logical and (component wise)
|
|
static JPH_INLINE UVec4 | sNot (UVec4Arg inV1) |
| Logical not (component wise)
|
|
static JPH_INLINE UVec4 | sSort4True (UVec4Arg inValue, UVec4Arg inIndex) |
|