Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cVecT4< TYPE > Class Template Reference

#include <cVecT.h>

Inheritance diagram for GrayLib::cVecT4< TYPE >:
GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >

Public Member Functions

 cVecT4 () noexcept
 
 cVecT4 (const SUPER_t &v) noexcept
 
 cVecT4 (const TYPE *pVals) noexcept
 
 cVecT4 (TYPE n0, TYPE n1, TYPE n2=0, TYPE n3=0) noexcept
 
 cVecT4 (const cVecT3< TYPE > &v2, TYPE _w=0)
 
const TYPEget_X () const noexcept
 
const TYPEget_Y () const noexcept
 
const TYPEget_Z () const noexcept
 
const TYPEget_W () const noexcept
 
const cVecT3< TYPE > & get_V3 () const noexcept
 
cVecT3< TYPE > & ref_V3 () noexcept
 
void InitCross (const THIS_t &v1, const THIS_t &v2, const THIS_t &v3)
 
- Public Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >
DVALUEDEF_tget_T () noexcept
 
const DVALUEDEF_tget_CT () const noexcept
 
const cVecT4< DVALUEDEF_t > & get_CR () const noexcept
 
 operator const DVALUEDEF_t * () const noexcept
 
DVALUEDEF_t GetElem (int i) const noexcept
 
DVALUEDEF_t operator[] (int i) const noexcept
 
DVALUEDEF_toperator[] (int i)
 
bool isZero () const noexcept
 
COMPARE_t Compare (const THIS_t &v2) const noexcept
 
bool operator== (const THIS_t &v2) const noexcept
 
bool operator!= (const THIS_t &v2) const noexcept
 
bool IsNear (const THIS_t &v2, DVALUEDEF_t fDist=(DVALUEDEF_t) k_FLT_MIN2) const
 
DVALUEDEF_t get_MagnitudeSq () const noexcept
 
DVALUEDEF_t get_Magnitude () const noexcept
 
cVecT4< DVALUEDEF_toperator- () const
 
cVecT4< DVALUEDEF_toperator- (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_tget_Abs () const
 
cVecT4< DVALUEDEF_tGetSum (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_toperator+ (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_tGetDiff (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_tGetScaled (DVALUEDEF_t nScale) const
 
cVecT4< DVALUEDEF_toperator* (DVALUEDEF_t nScale) const
 
cVecT4< DVALUEDEF_toperator/ (DVALUEDEF_t nScale) const
 
cVecT4< DVALUEDEF_tGetMul (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_tGetDiv (const THIS_t &v2) const
 
DVALUEDEF_t GetDistSq (const THIS_t &v2) const
 
DVALUEDEF_t GetDist (const THIS_t &v2) const
 
DVALUEDEF_t GetDot (const THIS_t &v2) const
 
cVecT4< DVALUEDEF_tget_Normalized () const
 
 operator DVALUEDEF_t * ()
 
DVALUEDEF_tRefElem (int i) noexcept
 
void Set (const THIS_t &v)
 
void SetZero () noexcept
 
DVALUEDEF_t SetNormalized (void) noexcept
 
bool put_Magnitude (DVALUEDEF_t nLength)
 
void SetLerp (const THIS_t &a, const THIS_t &b, DVALUE_t t)
 
const cVecT4< DVALUEDEF_t > & operator+= (const THIS_t &v2)
 
const cVecT4< DVALUEDEF_t > & operator+= (DVALUEDEF_t n)
 
const cVecT4< DVALUEDEF_t > & operator-= (const THIS_t &v2) noexcept
 
const cVecT4< DVALUEDEF_t > & operator-= (DVALUEDEF_t n) noexcept
 
void DoScale (DVALUEDEF_t n) noexcept
 
const cVecT4< DVALUEDEF_t > & operator*= (DVALUEDEF_t nScale) noexcept
 
cVecT4< DVALUEDEF_t > & operator*= (const THIS_t &v2) noexcept
 
const cVecT4< DVALUEDEF_t > & operator/= (DVALUEDEF_t nScale)
 
cVecT4< DVALUEDEF_t > & operator/= (const THIS_t &v2)
 
void DoMul (const THIS_t &v2) noexcept
 
void DoDiv (const THIS_t &v2)
 

Public Attributes

union {
   TYPE   m_a [4]
 
   struct {
      TYPE   m_x
 
      TYPE   m_y
 
      TYPE   m_z
 
      TYPE   m_w
 
   } 
 
   struct {
      TYPE   x
 
      TYPE   y
 
      TYPE   z
 
      TYPE   w
 
   } 
 
   struct {
      TYPE   r
 
      TYPE   g
 
      TYPE   b
 
      TYPE   a
 
   } 
 
}; 
 

Additional Inherited Members

- Public Types inherited from GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >
typedef DVALUEDEF_t DVALUE_t
 Dimension value type. More...
 
typedef cVecTC< DVALUEDEF_t, _IQTY, cVecT4< DVALUEDEF_t > > THIS_t
 
- Static Public Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >
static DVALUEDEF_t GetDot (const THIS_t &v1, const THIS_t &v2)
 
- Static Public Attributes inherited from GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >
static const int k_nDim
 
- Protected Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 4, cVecT4< DVALUEDEF_t > >
 cVecTC ()
 

Detailed Description

template<typename TYPE = DVALUEDEF_t>
class GrayLib::cVecT4< TYPE >

does not assume units or usage. like HLSL float4 XMFLOAT4 D3DXQUATERNION base for cQuaternionf, Plane, color4, RECT (2d)

Constructor & Destructor Documentation

◆ cVecT4() [1/5]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cVecT4< TYPE >::cVecT4 ( )
inlinenoexcept

ASSUME no/random/undefined init.

◆ cVecT4() [2/5]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cVecT4< TYPE >::cVecT4 ( const SUPER_t v)
inlinenoexcept

◆ cVecT4() [3/5]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cVecT4< TYPE >::cVecT4 ( const TYPE pVals)
inlinenoexcept

◆ cVecT4() [4/5]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cVecT4< TYPE >::cVecT4 ( TYPE  n0,
TYPE  n1,
TYPE  n2 = 0,
TYPE  n3 = 0 
)
inlinenoexcept

◆ cVecT4() [5/5]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cVecT4< TYPE >::cVecT4 ( const cVecT3< TYPE > &  v2,
TYPE  _w = 0 
)
inline

Member Function Documentation

◆ get_V3()

template<typename TYPE = DVALUEDEF_t>
const cVecT3<TYPE>& GrayLib::cVecT4< TYPE >::get_V3 ( ) const
inlinenoexcept

Warning in GNUC reinterpret_ warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

◆ get_W()

template<typename TYPE = DVALUEDEF_t>
const TYPE& GrayLib::cVecT4< TYPE >::get_W ( ) const
inlinenoexcept

◆ get_X()

template<typename TYPE = DVALUEDEF_t>
const TYPE& GrayLib::cVecT4< TYPE >::get_X ( ) const
inlinenoexcept

◆ get_Y()

template<typename TYPE = DVALUEDEF_t>
const TYPE& GrayLib::cVecT4< TYPE >::get_Y ( ) const
inlinenoexcept

◆ get_Z()

template<typename TYPE = DVALUEDEF_t>
const TYPE& GrayLib::cVecT4< TYPE >::get_Z ( ) const
inlinenoexcept

◆ InitCross()

template<typename TYPE = DVALUEDEF_t>
void GrayLib::cVecT4< TYPE >::InitCross ( const THIS_t v1,
const THIS_t v2,
const THIS_t v3 
)
inline

cVector4f cross product. like cVecT3::InitCross()

◆ ref_V3()

template<typename TYPE = DVALUEDEF_t>
cVecT3<TYPE>& GrayLib::cVecT4< TYPE >::ref_V3 ( )
inlinenoexcept

Warning in GNUC reinterpret_ warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

Member Data Documentation

◆ 

union { ... }

◆ a

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::a

◆ b

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::b

◆ g

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::g

◆ m_a

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::m_a[4]

◆ m_w

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::m_w

◆ m_x

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::m_x

◆ m_y

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::m_y

◆ m_z

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::m_z

◆ r

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::r

◆ w

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::w

◆ x

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::x

◆ y

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::y

◆ z

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT4< TYPE >::z

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