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

#include <cVecT.h>

Inheritance diagram for GrayLib::cVecT3< TYPE >:
GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >

Public Types

typedef cVecT3< TYPETHIS_t
 
typedef cVecTC< TYPE, k_nDim, THIS_tSUPER_t
 
- Public Types inherited from GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >
typedef DVALUEDEF_t DVALUE_t
 Dimension value type. More...
 
typedef cVecTC< DVALUEDEF_t, _IQTY, cVecT3< DVALUEDEF_t > > THIS_t
 

Public Member Functions

 cVecT3 () noexcept
 
 cVecT3 (const SUPER_t &v) noexcept
 
 cVecT3 (const TYPE *pVals) noexcept
 
 cVecT3 (TYPE n0, TYPE n1, TYPE n2=0) noexcept
 
TYPE get_X () const noexcept
 
TYPE get_Y () const noexcept
 
TYPE get_Z () const noexcept
 
const cVecT2< TYPE > & get_V2 () const noexcept
 
bool IsSame2D (const THIS_t &pt) const noexcept
 
TYPE GetDist2DSq (TYPE nX, TYPE nY) const
 
TYPE GetDist2DSq (const THIS_t &pt) const
 
TYPE GetDist2D (const THIS_t &pt) const
 
void InitCross (const THIS_t &rA, const THIS_t &rB)
 
THIS_t GetCross (const THIS_t &rB) const
 
void SetCross (const THIS_t &v2)
 
- Public Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >
DVALUEDEF_tget_T () noexcept
 
const DVALUEDEF_tget_CT () const noexcept
 
const cVecT3< 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
 
cVecT3< DVALUEDEF_toperator- () const
 
cVecT3< DVALUEDEF_toperator- (const THIS_t &v2) const
 
cVecT3< DVALUEDEF_tget_Abs () const
 
cVecT3< DVALUEDEF_tGetSum (const THIS_t &v2) const
 
cVecT3< DVALUEDEF_toperator+ (const THIS_t &v2) const
 
cVecT3< DVALUEDEF_tGetDiff (const THIS_t &v2) const
 
cVecT3< DVALUEDEF_tGetScaled (DVALUEDEF_t nScale) const
 
cVecT3< DVALUEDEF_toperator* (DVALUEDEF_t nScale) const
 
cVecT3< DVALUEDEF_toperator/ (DVALUEDEF_t nScale) const
 
cVecT3< DVALUEDEF_tGetMul (const THIS_t &v2) const
 
cVecT3< 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
 
cVecT3< 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 cVecT3< DVALUEDEF_t > & operator+= (const THIS_t &v2)
 
const cVecT3< DVALUEDEF_t > & operator+= (DVALUEDEF_t n)
 
const cVecT3< DVALUEDEF_t > & operator-= (const THIS_t &v2) noexcept
 
const cVecT3< DVALUEDEF_t > & operator-= (DVALUEDEF_t n) noexcept
 
void DoScale (DVALUEDEF_t n) noexcept
 
const cVecT3< DVALUEDEF_t > & operator*= (DVALUEDEF_t nScale) noexcept
 
cVecT3< DVALUEDEF_t > & operator*= (const THIS_t &v2) noexcept
 
const cVecT3< DVALUEDEF_t > & operator/= (DVALUEDEF_t nScale)
 
cVecT3< DVALUEDEF_t > & operator/= (const THIS_t &v2)
 
void DoMul (const THIS_t &v2) noexcept
 
void DoDiv (const THIS_t &v2)
 

Static Public Member Functions

static THIS_t GetCross (const THIS_t &rA, const THIS_t &rB)
 
- Static Public Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >
static DVALUEDEF_t GetDot (const THIS_t &v1, const THIS_t &v2)
 

Public Attributes

union {
   TYPE   m_a [k_nDim]
 
   struct {
      TYPE   m_x
 
      TYPE   m_y
 
      TYPE   m_z
 
   } 
 
   struct {
      TYPE   x
 
      TYPE   y
 
      TYPE   z
 
   } 
 
   struct {
      TYPE   r
 
      TYPE   g
 
      TYPE   b
 
   } 
 
}; 
 

Additional Inherited Members

- Static Public Attributes inherited from GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >
static const int k_nDim
 
- Protected Member Functions inherited from GrayLib::cVecTC< DVALUEDEF_t, 3, cVecT3< DVALUEDEF_t > >
 cVecTC ()
 

Detailed Description

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

base for 3d stuff Vector3f and cPoint3f, color3 does not assume units or usage. like HLSL float3

Note
Vectors may be not in the same system or usage. i.e. maybe be a delta, angle or point in a system.

Member Typedef Documentation

◆ SUPER_t

template<typename TYPE = DVALUEDEF_t>
typedef cVecTC<TYPE, k_nDim, THIS_t> GrayLib::cVecT3< TYPE >::SUPER_t

◆ THIS_t

template<typename TYPE = DVALUEDEF_t>
typedef cVecT3<TYPE> GrayLib::cVecT3< TYPE >::THIS_t

Constructor & Destructor Documentation

◆ cVecT3() [1/4]

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

ASSUME no/random/undefined init.

◆ cVecT3() [2/4]

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

◆ cVecT3() [3/4]

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

◆ cVecT3() [4/4]

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

Member Function Documentation

◆ get_V2()

template<typename TYPE = DVALUEDEF_t>
const cVecT2<TYPE>& GrayLib::cVecT3< TYPE >::get_V2 ( ) const
inlinenoexcept

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

◆ get_X()

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

◆ get_Y()

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

◆ get_Z()

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

◆ GetCross() [1/2]

template<typename TYPE = DVALUEDEF_t>
static THIS_t GrayLib::cVecT3< TYPE >::GetCross ( const THIS_t rA,
const THIS_t rB 
)
inlinestatic

Get cross product of this and v2. like D3DXVec3Cross AKA "Outer product"

◆ GetCross() [2/2]

template<typename TYPE = DVALUEDEF_t>
THIS_t GrayLib::cVecT3< TYPE >::GetCross ( const THIS_t rB) const
inline

Get cross product of this and b. like D3DXVec3Cross AKA "Outer product"

◆ GetDist2D()

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT3< TYPE >::GetDist2D ( const THIS_t pt) const
inline

◆ GetDist2DSq() [1/2]

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT3< TYPE >::GetDist2DSq ( const THIS_t pt) const
inline

◆ GetDist2DSq() [2/2]

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT3< TYPE >::GetDist2DSq ( TYPE  nX,
TYPE  nY 
) const
inline

◆ InitCross()

template<typename TYPE = DVALUEDEF_t>
void GrayLib::cVecT3< TYPE >::InitCross ( const THIS_t rA,
const THIS_t rB 
)
inline

Get cross product of this and v2. like D3DXVec3Cross AKA "Outer product"

◆ IsSame2D()

template<typename TYPE = DVALUEDEF_t>
bool GrayLib::cVecT3< TYPE >::IsSame2D ( const THIS_t pt) const
inlinenoexcept

◆ SetCross()

template<typename TYPE = DVALUEDEF_t>
void GrayLib::cVecT3< TYPE >::SetCross ( const THIS_t v2)
inline

cross product = AKA "Outer product"

Member Data Documentation

◆ 

union { ... }

◆ b

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

◆ g

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

◆ m_a

template<typename TYPE = DVALUEDEF_t>
TYPE GrayLib::cVecT3< TYPE >::m_a[k_nDim]

◆ m_x

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

◆ m_y

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

◆ m_z

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

◆ r

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

◆ x

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

◆ y

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

◆ z

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

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