63 return *
reinterpret_cast<XMFLOAT2*
>(
this);
65 inline operator const XMFLOAT2&()
const noexcept
67 return *
reinterpret_cast<const XMFLOAT2*
>(
this);
74 inline operator const XMFLOAT2*()
const noexcept
79 const XMFLOAT4* get_X4() const noexcept
126 :
cVecT3<DVALUE_t>(*(const SUPER_t*)&v)
133 inline operator const XMFLOAT3&()
const
142 inline operator const XMFLOAT3*()
const
153 inline DVALUE_t operator[] (
int i)
const
158 inline DVALUE_t& operator[] (
int i)
165 cVector3f(
const XMVECTOR& v)
167 ::XMStoreFloat3((
XMFLOAT3*)
this, v);
169 inline void Set(
const XMVECTOR& v)
171 ::XMStoreFloat3((
XMFLOAT3*)
this, v);
173 inline operator XMVECTOR ()
const
175 return ::XMLoadFloat3((
const XMFLOAT3*)
this);
229 THIS_t v = vTarget - *
this;
234 DVALUE_t GetDistSeg(
const THIS_t& v1,
const THIS_t& v2)
const;
235 RADIANf_t GetEulerHeading(
const THIS_t& v2)
const;
241 m_x = -k_FLT_MAX2; m_y = -k_FLT_MAX2; m_z = -k_FLT_MAX2;
245 m_x = k_FLT_MAX2; m_y = k_FLT_MAX2; m_z = k_FLT_MAX2;
250 void SetEulerWrapSigned();
285 #if defined(USE_DXM) || defined(USE_DX)
294 inline operator const XMFLOAT4&()
const
302 inline operator const XMFLOAT4*()
const
311 ::XMStoreFloat4((
XMFLOAT4*)
this, v);
313 inline void Set(
const XMVECTOR& v)
315 ::XMStoreFloat4((
XMFLOAT4*)
this, v);
317 inline operator XMVECTOR ()
const
319 return ::XMLoadFloat4((
const XMFLOAT4*)
this);
327 *
this = ::XMVector4Cross((XMVECTOR)v1, (XMVECTOR)v2, (XMVECTOR)v3);
338 return *((cVector3f*)&v);
340 inline const cVector3f& Cvt(
const XMFLOAT3& v)
342 return *((
const cVector3f*)&v);
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
Definition: cMatrix.h:194
TYPE y
Definition: cVecT.h:545
TYPE z
Definition: cVecT.h:545
TYPE x
Definition: cVecT.h:545
void InitCross(const THIS_t &v1, const THIS_t &v2, const THIS_t &v3)
Definition: cVecT.h:733
float w
Definition: cVecT.h:676
DVALUEDEF_t DVALUE_t
Dimension value type.
Definition: cVecT.h:48
void Set(const THIS_t &v)
Definition: cVecT.h:322
TYPE SetNormalized(void) noexcept
Definition: cVecT.h:334
cVector2f(const SUPER_t &v2) noexcept
Definition: cVector.h:48
static const cVector2f k_vOne
Definition: cVector.h:88
cVector2f(DVALUE_t _x, DVALUE_t _y) noexcept
Definition: cVector.h:51
cVector2f() noexcept
Definition: cVector.h:44
static const cVector2f k_vZero
Definition: cVector.h:87
static const cVector3f k_vYAxis
Definition: cVector.h:109
bool IsNearXZ(const THIS_t &v2, DVALUE_t fDist=k_FLT_MIN2) const
Definition: cVector.h:203
DVALUE_t GetMinAxis(const THIS_t &v2, DVALUE_t fDistMin=k_FLT_MIN2) const
Definition: cVector.h:181
bool IsNearHeight(const THIS_t &v2, DVALUE_t fDist=k_FLT_MIN2) const
Definition: cVector.h:197
cVector3f(DVALUE_t _x, DVALUE_t _y, DVALUE_t _z) noexcept
Definition: cVector.h:119
static const cVector3f k_vXAxis
Definition: cVector.h:108
static const cVector3f k_vZero
Definition: cVector.h:106
DVALUE_t GetDistXZ(const THIS_t &v2) const
Definition: cVector.h:211
cVector3f() noexcept
Definition: cVector.h:112
void SetMin()
Definition: cVector.h:239
THIS_t GetVectorToTarget(const cVector3f &vTarget) const
Definition: cVector.h:226
static const cVector3f k_vZAxis
Definition: cVector.h:110
static const cVector3f k_vOne
Definition: cVector.h:107
UNITTEST2_PREDEF(cVector)
void SetMax()
Definition: cVector.h:243
cVector3f(const SUPER_t &v) noexcept
Definition: cVector.h:116
Definition: cVector.h:261
cVector4f(const DVALUE_t *pVals)
Definition: cVector.h:273
cVector4f(DVALUE_t _x, DVALUE_t _y, DVALUE_t _z=0, DVALUE_t _w=0) noexcept
Definition: cVector.h:278
cVector4f(const cVecT3< DVALUE_t > &v, DVALUE_t w)
Definition: cVector.h:281
cVector4f()
Definition: cVector.h:269
cVector4f(const SUPER_t &v)
Definition: cVector.h:275
void InitCross4(const cVector4f &v1, const cVector4f &v2, const cVector4f &v3)
Definition: cVector.h:323
class __DECL_IMPORT cMatrix4x4f
Definition: cVector.h:22
UNITTEST2_PREDEF(cQuadtree)
cVecT3< double > cVector3d
Definition: cVector.h:258
cVecT2< double > cVector2d
Definition: cVector.h:91
float RADIANf_t
type is float radians
Definition: Calc.h:27
AXIS_TYPE
Definition: cVector.h:25
@ AXIS_Trans
position offset.
Definition: cVector.h:31
@ AXIS_Y
Definition: cVector.h:29
@ AXIS_X
Definition: cVector.h:28
@ AXIS_Z
Definition: cVector.h:30
@ AXIS_QTY
Definition: cVector.h:32
static TYPE Abs(TYPE a) noexcept
similar to ABS(n) macro. Does nothing for unsigned types.
static bool IsNear(TYPE n1, TYPE n2, TYPE nDiff=(TYPE) k_FLT_MIN2) noexcept
Definition: Calc.h:135
static TYPE Sqr(TYPE a) noexcept
Definition: Calc.h:141
static TYPE Sqrt(TYPE a)
Definition: Calc.h:430