Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
UVec8 Class Reference

#include <UVec8.h>

Public Member Functions

JPH_OVERRIDE_NEW_DELETE UVec8 ()=default
 Intentionally not initialized for performance reasons. More...
 
 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. More...
 
JPH_INLINE bool operator== (UVec8Arg inV2) const
 Comparison. More...
 
JPH_INLINE bool operator!= (UVec8Arg inV2) const
 
JPH_INLINE uint32 operator[] (uint inCoordinate) const
 Get float component by index. More...
 
JPH_INLINE uint32operator[] (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) More...
 
JPH_INLINE bool TestAnyTrue () const
 Test if any of the components are true (true is when highest bit of component is set) More...
 
JPH_INLINE bool TestAllTrue () const
 Test if all components are true (true is when highest bit of component is set) More...
 
JPH_INLINE UVec4 LowerVec4 () const
 Fetch the lower 128 bit from a 256 bit variable. More...
 
JPH_INLINE UVec4 UpperVec4 () const
 Fetch the higher 128 bit from a 256 bit variable. More...
 
JPH_INLINE Vec8 ToFloat () const
 Converts int to float. More...
 
template<const uint Count>
JPH_INLINE UVec8 LogicalShiftLeft () const
 Shift all components by Count bits to the left (filling with zeros from the left) More...
 
template<const uint Count>
JPH_INLINE UVec8 LogicalShiftRight () const
 Shift all components by Count bits to the right (filling with zeros from the right) More...
 
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) More...
 
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. More...
 
static JPH_INLINE UVec8 sSplatX (UVec4Arg inV)
 Replicate the X component of inV to all components. More...
 
static JPH_INLINE UVec8 sSplatY (UVec4Arg inV)
 Replicate the Y component of inV to all components. More...
 
static JPH_INLINE UVec8 sSplatZ (UVec4Arg inV)
 Replicate the Z component of inV to all components. More...
 
static JPH_INLINE UVec8 sEquals (UVec8Arg inV1, UVec8Arg inV2)
 Equals (component wise) More...
 
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. More...
 
static JPH_INLINE UVec8 sOr (UVec8Arg inV1, UVec8Arg inV2)
 Logical or. More...
 
static JPH_INLINE UVec8 sXor (UVec8Arg inV1, UVec8Arg inV2)
 Logical xor. More...
 
static JPH_INLINE UVec8 sAnd (UVec8Arg inV1, UVec8Arg inV2)
 Logical and. More...
 

Public Attributes

union {
   __m256i   mValue
 
   uint32   mU32 [8]
 
}; 
 

Constructor & Destructor Documentation

◆ UVec8() [1/4]

JPH_OVERRIDE_NEW_DELETE UVec8::UVec8 ( )
default

Intentionally not initialized for performance reasons.

◆ UVec8() [2/4]

UVec8::UVec8 ( const UVec8 inRHS)
default

◆ UVec8() [3/4]

JPH_INLINE UVec8::UVec8 ( __m256i  inRHS)
inline

◆ UVec8() [4/4]

JPH_NAMESPACE_BEGIN UVec8::UVec8 ( UVec4Arg  inLo,
UVec4Arg  inHi 
)

Set 256 bit vector from 2 128 bit vectors.

Member Function Documentation

◆ ArithmeticShiftRight() [1/2]

template<const uint Count>
JPH_INLINE UVec8 UVec8::ArithmeticShiftRight ( ) const

Shift all components by Count bits to the right (shifting in the value of the highest bit)

◆ ArithmeticShiftRight() [2/2]

template<const uint Count>
UVec8 UVec8::ArithmeticShiftRight ( ) const

◆ LogicalShiftLeft() [1/2]

template<const uint Count>
JPH_INLINE UVec8 UVec8::LogicalShiftLeft ( ) const

Shift all components by Count bits to the left (filling with zeros from the left)

◆ LogicalShiftLeft() [2/2]

template<const uint Count>
UVec8 UVec8::LogicalShiftLeft ( ) const

◆ LogicalShiftRight() [1/2]

template<const uint Count>
JPH_INLINE UVec8 UVec8::LogicalShiftRight ( ) const

Shift all components by Count bits to the right (filling with zeros from the right)

◆ LogicalShiftRight() [2/2]

template<const uint Count>
UVec8 UVec8::LogicalShiftRight ( ) const

◆ LowerVec4()

UVec4 UVec8::LowerVec4 ( ) const

Fetch the lower 128 bit from a 256 bit variable.

◆ operator!=()

JPH_INLINE bool UVec8::operator!= ( UVec8Arg  inV2) const
inline

◆ operator==()

bool UVec8::operator== ( UVec8Arg  inV2) const

Comparison.

◆ operator[]() [1/2]

JPH_INLINE uint32 & UVec8::operator[] ( uint  inCoordinate)
inline

◆ operator[]() [2/2]

JPH_INLINE uint32 UVec8::operator[] ( uint  inCoordinate) const
inline

Get float component by index.

◆ sAnd()

UVec8 UVec8::sAnd ( UVec8Arg  inV1,
UVec8Arg  inV2 
)
static

Logical and.

◆ sEquals()

UVec8 UVec8::sEquals ( UVec8Arg  inV1,
UVec8Arg  inV2 
)
static

Equals (component wise)

◆ sOr()

UVec8 UVec8::sOr ( UVec8Arg  inV1,
UVec8Arg  inV2 
)
static

Logical or.

◆ sReplicate()

UVec8 UVec8::sReplicate ( uint32  inV)
static

Replicate int across all components.

◆ sSelect()

UVec8 UVec8::sSelect ( UVec8Arg  inV1,
UVec8Arg  inV2,
UVec8Arg  inControl 
)
static

Component wise select, returns inV1 when highest bit of inControl = 0 and inV2 when highest bit of inControl = 1.

◆ sSplatX()

UVec8 UVec8::sSplatX ( UVec4Arg  inV)
static

Replicate the X component of inV to all components.

◆ sSplatY()

UVec8 UVec8::sSplatY ( UVec4Arg  inV)
static

Replicate the Y component of inV to all components.

◆ sSplatZ()

UVec8 UVec8::sSplatZ ( UVec4Arg  inV)
static

Replicate the Z component of inV to all components.

◆ Swizzle() [1/2]

template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW>
JPH_INLINE UVec8 UVec8::Swizzle ( ) const

256 bit variant of Vec::Swizzle (no cross 128 bit lane swizzle)

◆ Swizzle() [2/2]

template<uint32 SwizzleX, uint32 SwizzleY, uint32 SwizzleZ, uint32 SwizzleW>
UVec8 UVec8::Swizzle ( ) const

◆ sXor()

UVec8 UVec8::sXor ( UVec8Arg  inV1,
UVec8Arg  inV2 
)
static

Logical xor.

◆ TestAllTrue()

bool UVec8::TestAllTrue ( ) const

Test if all components are true (true is when highest bit of component is set)

◆ TestAnyTrue()

bool UVec8::TestAnyTrue ( ) const

Test if any of the components are true (true is when highest bit of component is set)

◆ ToFloat()

Vec8 UVec8::ToFloat ( ) const

Converts int to float.

◆ UpperVec4()

UVec4 UVec8::UpperVec4 ( ) const

Fetch the higher 128 bit from a 256 bit variable.

Member Data Documentation

◆ 

union { ... } UVec8::@15

◆ mU32

uint32 UVec8::mU32[8]

◆ mValue

__m256i UVec8::mValue

The documentation for this class was generated from the following files: