Newton Dynamics  4.00
dVector Class Reference
Inheritance diagram for dVector:
dPlane

Public Member Functions

D_INLINE dVector (dFloat32 val)
 
D_INLINE dVector (const dVector &v)
 
D_INLINE dVector (const float32x4_t type)
 
D_INLINE dVector (const dFloat32 *const ptr)
 
D_INLINE dVector (const dFloat64 *const ptr)
 
D_INLINE dVector (dFloat32 x, dFloat32 y, dFloat32 z, dFloat32 w)
 
D_INLINE dVector (dInt32 ix, dInt32 iy, dInt32 iz, dInt32 iw)
 
D_INLINE dVector (const dBigVector &copy)
 
D_INLINE dFloat32 GetScalar () const
 
D_INLINE void Store (dFloat32 *const dst) const
 
D_INLINE dVector BroadcastX () const
 
D_INLINE dVector BroadcastY () const
 
D_INLINE dVector BroadcastZ () const
 
D_INLINE dVector BroadcastW () const
 
D_INLINE dFloat32 & operator[] (dInt32 i)
 
D_INLINE const dFloat32 & operator[] (dInt32 i) const
 
D_INLINE dVector operator+ (const dVector &A) const
 
D_INLINE dVector operator- (const dVector &A) const
 
D_INLINE dVector operator* (const dVector &A) const
 
D_INLINE dVectoroperator+= (const dVector &A)
 
D_INLINE dVectoroperator-= (const dVector &A)
 
D_INLINE dVectoroperator*= (const dVector &A)
 
D_INLINE dVector MulAdd (const dVector &A, const dVector &B) const
 
D_INLINE dVector MulSub (const dVector &A, const dVector &B) const
 
D_INLINE dVector AddHorizontal () const
 
D_INLINE dVector Scale (dFloat32 scale) const
 
D_INLINE dVector CrossProduct (const dVector &B) const
 
D_INLINE dVector CrossProduct (const dVector &A, const dVector &B) const
 
D_INLINE dVector GetInt () const
 
D_INLINE dVector TestZero () const
 
D_INLINE dVector Floor () const
 
D_INLINE dVector DotProduct (const dVector &A) const
 
D_INLINE dVector Reciproc () const
 
D_INLINE dVector Sqrt () const
 
D_INLINE dVector InvSqrt () const
 
D_INLINE dVector InvMagSqrt () const
 
D_INLINE dVector Normalize () const
 
dVector Abs () const
 
dFloat32 GetMax () const
 
dVector GetMax (const dVector &data) const
 
dVector GetMin (const dVector &data) const
 
D_INLINE dVector operator== (const dVector &data) const
 
D_INLINE dVector operator> (const dVector &data) const
 
D_INLINE dVector operator< (const dVector &data) const
 
D_INLINE dVector operator>= (const dVector &data) const
 
D_INLINE dVector operator<= (const dVector &data) const
 
D_INLINE dVector operator& (const dVector &data) const
 
D_INLINE dVector operator| (const dVector &data) const
 
D_INLINE dVector operator^ (const dVector &data) const
 
D_INLINE dVector AndNot (const dVector &data) const
 
D_INLINE dVector Select (const dVector &data, const dVector &mask) const
 
D_INLINE dInt32 GetSignMask () const
 
D_INLINE dVector ShiftRight () const
 
D_INLINE dVector ShiftTripleRight () const
 
D_INLINE dVector ShiftTripleLeft () const
 
D_INLINE dVector ShiftRightLogical (dInt32 bits) const
 
D_INLINE dVector (dFloat32 val)
 
D_INLINE dVector (const dVector &v)
 
D_INLINE dVector (const dFloat32 *const ptr)
 
D_INLINE dVector (const dFloat64 *const ptr)
 
D_INLINE dVector (dFloat32 x, dFloat32 y, dFloat32 z, dFloat32 w)
 
D_INLINE dVector (dInt32 ix, dInt32 iy, dInt32 iz, dInt32 iw)
 
D_INLINE dVector (const dBigVector &copy)
 
D_INLINE dFloat32 GetScalar () const
 
D_INLINE void Store (dFloat32 *const dst) const
 
D_INLINE dVector BroadcastX () const
 
D_INLINE dVector BroadcastY () const
 
D_INLINE dVector BroadcastZ () const
 
D_INLINE dVector BroadcastW () const
 
D_INLINE dFloat32 & operator[] (dInt32 i)
 
D_INLINE const dFloat32 & operator[] (dInt32 i) const
 
D_INLINE dVector operator+ (const dVector &A) const
 
D_INLINE dVector operator- (const dVector &A) const
 
D_INLINE dVector operator* (const dVector &A) const
 
D_INLINE dVectoroperator+= (const dVector &A)
 
D_INLINE dVectoroperator-= (const dVector &A)
 
D_INLINE dVectoroperator*= (const dVector &A)
 
D_INLINE dVector MulAdd (const dVector &A, const dVector &B) const
 
D_INLINE dVector MulSub (const dVector &A, const dVector &B) const
 
D_INLINE dVector AddHorizontal () const
 
D_INLINE dVector Scale (dFloat32 scale) const
 
D_INLINE dVector CrossProduct (const dVector &B) const
 
D_INLINE dVector CrossProduct (const dVector &A, const dVector &B) const
 
D_INLINE dVector GetInt () const
 
D_INLINE dVector TestZero () const
 
D_INLINE dVector Floor () const
 
D_INLINE dVector DotProduct (const dVector &A) const
 
D_INLINE dVector Reciproc () const
 
D_INLINE dVector Sqrt () const
 
D_INLINE dVector InvSqrt () const
 
D_INLINE dVector InvMagSqrt () const
 
D_INLINE dVector Normalize () const
 
dVector Abs () const
 
dFloat32 GetMax () const
 
dVector GetMax (const dVector &data) const
 
dVector GetMin (const dVector &data) const
 
D_INLINE dVector operator== (const dVector &data) const
 
D_INLINE dVector operator> (const dVector &data) const
 
D_INLINE dVector operator< (const dVector &data) const
 
D_INLINE dVector operator>= (const dVector &data) const
 
D_INLINE dVector operator<= (const dVector &data) const
 
D_INLINE dVector operator& (const dVector &data) const
 
D_INLINE dVector operator| (const dVector &data) const
 
D_INLINE dVector operator^ (const dVector &data) const
 
D_INLINE dVector AndNot (const dVector &data) const
 
D_INLINE dVector Select (const dVector &data, const dVector &mask) const
 
D_INLINE dInt32 GetSignMask () const
 
D_INLINE dVector ShiftRight () const
 
D_INLINE dVector ShiftTripleRight () const
 
D_INLINE dVector ShiftTripleLeft () const
 
D_INLINE dVector ShiftRightLogical (dInt32 bits) const
 
D_INLINE dVector (const __m128i type)
 
D_INLINE dVector (const __m128 type)
 
D_INLINE dVector (const dFloat32 a)
 
D_INLINE dVector (const dFloat32 *const ptr)
 
D_INLINE dVector (const dFloat64 *const ptr)
 
D_INLINE dVector (const dVector &copy)
 
D_INLINE dVector (const dBigVector &copy)
 
D_INLINE dVector (dFloat32 x, dFloat32 y, dFloat32 z, dFloat32 w)
 
D_INLINE dVector (dInt32 ix, dInt32 iy, dInt32 iz, dInt32 iw)
 
D_INLINE void * operator new[] (size_t size)
 
D_INLINE void * operator new (size_t size)
 
D_INLINE void operator delete[] (void *ptr)
 
D_INLINE void operator delete (void *ptr)
 
D_INLINE dFloat32 GetScalar () const
 
D_INLINE void Store (dFloat32 *const dst) const
 
D_INLINE dVector BroadcastX () const
 
D_INLINE dVector BroadcastY () const
 
D_INLINE dVector BroadcastZ () const
 
D_INLINE dVector BroadcastW () const
 
D_INLINE dVector Scale (dFloat32 s) const
 
D_INLINE dFloat32 & operator[] (dInt32 i)
 
D_INLINE const dFloat32 & operator[] (dInt32 i) const
 
D_INLINE dVector operator+ (const dVector &A) const
 
D_INLINE dVector operator- (const dVector &A) const
 
D_INLINE dVector operator* (const dVector &A) const
 
D_INLINE dVectoroperator+= (const dVector &A)
 
D_INLINE dVectoroperator-= (const dVector &A)
 
D_INLINE dVectoroperator*= (const dVector &A)
 
D_INLINE dVector CrossProduct (const dVector &B) const
 
D_INLINE dVector DotProduct (const dVector &A) const
 
D_INLINE dVector CrossProduct (const dVector &A, const dVector &B) const
 
D_INLINE dVector Reciproc () const
 
D_INLINE dVector MulAdd (const dVector &A, const dVector &B) const
 
D_INLINE dVector MulSub (const dVector &A, const dVector &B) const
 
D_INLINE dVector AddHorizontal () const
 
D_INLINE dVector Abs () const
 
dFloat32 GetMax () const
 
dVector GetMax (const dVector &data) const
 
dVector GetMin (const dVector &data) const
 
D_INLINE dVector GetInt () const
 
D_INLINE dVector TestZero () const
 
D_INLINE dVector Floor () const
 
D_INLINE dVector Sqrt () const
 
D_INLINE dVector InvSqrt () const
 
D_INLINE dVector InvMagSqrt () const
 
D_INLINE dVector Normalize () const
 
D_INLINE dVector operator> (const dVector &data) const
 
D_INLINE dVector operator== (const dVector &data) const
 
D_INLINE dVector operator< (const dVector &data) const
 
D_INLINE dVector operator>= (const dVector &data) const
 
D_INLINE dVector operator<= (const dVector &data) const
 
D_INLINE dVector operator& (const dVector &data) const
 
D_INLINE dVector operator| (const dVector &data) const
 
D_INLINE dVector operator^ (const dVector &data) const
 
D_INLINE dVector AndNot (const dVector &data) const
 
D_INLINE dVector Select (const dVector &data, const dVector &mask) const
 
D_INLINE dInt32 GetSignMask () const
 
D_INLINE dVector ShiftRight () const
 
D_INLINE dVector ShiftTripleRight () const
 
D_INLINE dVector ShiftTripleLeft () const
 
D_INLINE dVector ShiftRightLogical (dInt32 bits) const
 
D_INLINE void Trace (char *const name) const
 

Static Public Member Functions

static D_INLINE void Transpose4x4 (dVector &dst0, dVector &dst1, dVector &dst2, dVector &dst3, const dVector &src0, const dVector &src1, const dVector &src2, const dVector &src3)
 
static D_INLINE void Transpose4x4 (dVector &dst0, dVector &dst1, dVector &dst2, dVector &dst3, const dVector &src0, const dVector &src1, const dVector &src2, const dVector &src3)
 
static D_INLINE void Transpose4x4 (dVector &dst0, dVector &dst1, dVector &dst2, dVector &dst3, const dVector &src0, const dVector &src1, const dVector &src2, const dVector &src3)
 

Public Attributes

union {
   dFloat32   m_f [4]
 
   dInt32   m_i [4]
 
   float32x4_t   m_type
 
   uint32x4_t   m_typeInt
 
   struct {
      dFloat32   m_x
 
      dFloat32   m_y
 
      dFloat32   m_z
 
      dFloat32   m_w
 
   } 
 
   struct {
      dInt32   m_ix
 
      dInt32   m_iy
 
      dInt32   m_iz
 
      dInt32   m_iw
 
   } 
 
   __m128   m_type
 
   __m128i   m_typeInt
 
}; 
 

Static Public Attributes

static dVector m_zero
 
static dVector m_one
 
static dVector m_wOne
 
static dVector m_half
 
static dVector m_two
 
static dVector m_three
 
static dVector m_negOne
 
static dVector m_xMask
 
static dVector m_yMask
 
static dVector m_zMask
 
static dVector m_wMask
 
static dVector m_epsilon
 
static dVector m_signMask
 
static dVector m_triplexMask
 
static D_CORE_API dVector m_zero
 
static D_CORE_API dVector m_one
 
static D_CORE_API dVector m_wOne
 
static D_CORE_API dVector m_two
 
static D_CORE_API dVector m_half
 
static D_CORE_API dVector m_three
 
static D_CORE_API dVector m_negOne
 
static D_CORE_API dVector m_xMask
 
static D_CORE_API dVector m_yMask
 
static D_CORE_API dVector m_zMask
 
static D_CORE_API dVector m_wMask
 
static D_CORE_API dVector m_epsilon
 
static D_CORE_API dVector m_signMask
 
static D_CORE_API dVector m_triplexMask