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

#include <cQuaternion.h>

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

Public Types

typedef cVecT4< TYPESUPER_t
 
- 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
 

Public Member Functions

 cQuaternionT () noexcept
 
 cQuaternionT (TYPE _x, TYPE _y, TYPE _z, TYPE _w) noexcept
 
 cQuaternionT (const SUPER_t &q) noexcept
 
bool isIdentity () const noexcept
 
bool IsNearQ (const SUPER_t &q, TYPE fDist=k_FLT_MIN2) const
 
- Public Member Functions inherited from GrayLib::cVecT4< DVALUEDEF_t >
 cVecT4 () noexcept
 
 cVecT4 (const SUPER_t &v) noexcept
 
 cVecT4 (const DVALUEDEF_t *pVals) noexcept
 
 cVecT4 (DVALUEDEF_t n0, DVALUEDEF_t n1, DVALUEDEF_t n2=0, DVALUEDEF_t n3=0) noexcept
 
 cVecT4 (const cVecT3< DVALUEDEF_t > &v2, DVALUEDEF_t _w=0)
 
const DVALUEDEF_tget_X () const noexcept
 
const DVALUEDEF_tget_Y () const noexcept
 
const DVALUEDEF_tget_Z () const noexcept
 
const DVALUEDEF_tget_W () const noexcept
 
const cVecT3< DVALUEDEF_t > & get_V3 () const noexcept
 
cVecT3< DVALUEDEF_t > & 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)
 

Additional Inherited Members

- 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)
 
- Public Attributes inherited from GrayLib::cVecT4< DVALUEDEF_t >
DVALUEDEF_t m_a [4]
 
DVALUEDEF_t m_x
 
DVALUEDEF_t m_y
 
DVALUEDEF_t m_z
 
DVALUEDEF_t m_w
 
DVALUEDEF_t x
 
DVALUEDEF_t y
 
DVALUEDEF_t z
 
DVALUEDEF_t w
 
DVALUEDEF_t r
 
DVALUEDEF_t g
 
DVALUEDEF_t b
 
DVALUEDEF_t a
 
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
 
   } 
 
}; 
 
- 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::cQuaternionT< TYPE >

Base template class for quaternion math.

Member Typedef Documentation

◆ SUPER_t

template<typename TYPE = DVALUEDEF_t>
typedef cVecT4<TYPE> GrayLib::cQuaternionT< TYPE >::SUPER_t

Constructor & Destructor Documentation

◆ cQuaternionT() [1/3]

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

◆ cQuaternionT() [2/3]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cQuaternionT< TYPE >::cQuaternionT ( TYPE  _x,
TYPE  _y,
TYPE  _z,
TYPE  _w 
)
inlinenoexcept

◆ cQuaternionT() [3/3]

template<typename TYPE = DVALUEDEF_t>
GrayLib::cQuaternionT< TYPE >::cQuaternionT ( const SUPER_t q)
inlinenoexcept

Member Function Documentation

◆ isIdentity()

template<typename TYPE = DVALUEDEF_t>
bool GrayLib::cQuaternionT< TYPE >::isIdentity ( ) const
inlinenoexcept

Is identity quaternion?

◆ IsNearQ()

template<typename TYPE = DVALUEDEF_t>
bool GrayLib::cQuaternionT< TYPE >::IsNearQ ( const SUPER_t q,
TYPE  fDist = k_FLT_MIN2 
) const
inline

Allow values to be +- same value. Quaternions have 2 equivalent positions.


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