Jolt Physics
A multi core friendly Game Physics Engine
|
#include <UVec8.h>
Public Member Functions | |
JPH_OVERRIDE_NEW_DELETE | UVec8 ()=default |
Intentionally not initialized for performance reasons. | |
UVec8 (const UVec8 &inRHS)=default | |
JPH_INLINE | UVec8 (__m256i inRHS) |
JPH_INLINE | UVec8 (UVec4Arg inLo, UVec4Arg inHi) |
Set 256 bit vector from 2 128 bit vectors. | |
JPH_INLINE bool | operator== (UVec8Arg inV2) const |
Comparison. | |
JPH_INLINE bool | operator!= (UVec8Arg inV2) const |
JPH_INLINE uint32 | operator[] (uint inCoordinate) const |
Get float component by index. | |
JPH_INLINE uint32 & | operator[] (uint inCoordinate) |
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> | |
JPH_INLINE UVec8 | Swizzle () const |
256 bit variant of Vec::Swizzle (no cross 128 bit lane swizzle) | |
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 | TestAllTrue () const |
Test if all components are true (true is when highest bit of component is set) | |
JPH_INLINE UVec4 | LowerVec4 () const |
Fetch the lower 128 bit from a 256 bit variable. | |
JPH_INLINE UVec4 | UpperVec4 () const |
Fetch the higher 128 bit from a 256 bit variable. | |
JPH_INLINE Vec8 | ToFloat () const |
Converts int to float. | |
template<const uint Count> | |
JPH_INLINE UVec8 | LogicalShiftLeft () const |
Shift all components by Count bits to the left (filling with zeros from the left) | |
template<const uint Count> | |
JPH_INLINE UVec8 | LogicalShiftRight () const |
Shift all components by Count bits to the right (filling with zeros from the right) | |
template<const uint Count> | |
JPH_INLINE UVec8 | ArithmeticShiftRight () const |
Shift all components by Count bits to the right (shifting in the value of the highest bit) | |
template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW> | |
UVec8 | Swizzle () const |
template<const uint Count> | |
UVec8 | LogicalShiftLeft () const |
template<const uint Count> | |
UVec8 | LogicalShiftRight () const |
template<const uint Count> | |
UVec8 | ArithmeticShiftRight () const |
Static Public Member Functions | |
static JPH_INLINE UVec8 | sReplicate (uint32 inV) |
Replicate int across all components. | |
static JPH_INLINE UVec8 | sSplatX (UVec4Arg inV) |
Replicate the X component of inV to all components. | |
static JPH_INLINE UVec8 | sSplatY (UVec4Arg inV) |
Replicate the Y component of inV to all components. | |
static JPH_INLINE UVec8 | sSplatZ (UVec4Arg inV) |
Replicate the Z component of inV to all components. | |
static JPH_INLINE UVec8 | sEquals (UVec8Arg inV1, UVec8Arg inV2) |
Equals (component wise) | |
static JPH_INLINE UVec8 | sSelect (UVec8Arg inV1, UVec8Arg inV2, UVec8Arg inControl) |
Component wise select, returns inV1 when highest bit of inControl = 0 and inV2 when highest bit of inControl = 1. | |
static JPH_INLINE UVec8 | sOr (UVec8Arg inV1, UVec8Arg inV2) |
Logical or. | |
static JPH_INLINE UVec8 | sXor (UVec8Arg inV1, UVec8Arg inV2) |
Logical xor. | |
static JPH_INLINE UVec8 | sAnd (UVec8Arg inV1, UVec8Arg inV2) |
Logical and. | |
Public Attributes | ||
union { | ||
__m256i mValue | ||
uint32 mU32 [8] | ||
}; | ||
|
default |
Intentionally not initialized for performance reasons.
|
inline |
JPH_NAMESPACE_BEGIN UVec8::UVec8 | ( | UVec4Arg | inLo, |
UVec4Arg | inHi ) |
Set 256 bit vector from 2 128 bit vectors.
JPH_INLINE UVec8 UVec8::ArithmeticShiftRight | ( | ) | const |
Shift all components by Count bits to the right (shifting in the value of the highest bit)
JPH_INLINE UVec8 UVec8::LogicalShiftLeft | ( | ) | const |
Shift all components by Count bits to the left (filling with zeros from the left)
JPH_INLINE UVec8 UVec8::LogicalShiftRight | ( | ) | const |
Shift all components by Count bits to the right (filling with zeros from the right)
UVec4 UVec8::LowerVec4 | ( | ) | const |
Fetch the lower 128 bit from a 256 bit variable.
|
inline |
|
inline |
|
inline |
Get float component by index.
Component wise select, returns inV1 when highest bit of inControl = 0 and inV2 when highest bit of inControl = 1.
JPH_INLINE UVec8 UVec8::Swizzle | ( | ) | const |
256 bit variant of Vec::Swizzle (no cross 128 bit lane swizzle)
UVec8 UVec8::Swizzle | ( | ) | const |
bool UVec8::TestAllTrue | ( | ) | const |
Test if all components are true (true is when highest bit of component is set)
bool UVec8::TestAnyTrue | ( | ) | const |
Test if any of the components are true (true is when highest bit of component is set)
Vec8 UVec8::ToFloat | ( | ) | const |
Converts int to float.
UVec4 UVec8::UpperVec4 | ( | ) | const |
Fetch the higher 128 bit from a 256 bit variable.
union { ... } UVec8 |
uint32 UVec8::mU32[8] |
__m256i UVec8::mValue |