6 #ifndef _INC_cSegment3_H
7 #define _INC_cSegment3_H
12 #include "../Math/cVector.h"
38 : m_vMin(v1), m_vMax(v2)
45 return cVector3f((m_vMin.
x + m_vMax.
x) / 2, (m_vMin.
y + m_vMax.
y) / 2, (m_vMin.
z + m_vMax.
z) / 2);
49 return m_vMax.
x - m_vMin.
x;
53 return m_vMax.
y - m_vMin.
y;
61 return m_vMax.
z - m_vMin.
z;
66 return cVector3f(m_vMax.
x - m_vMin.
x, m_vMax.
y - m_vMin.
y, m_vMax.
z - m_vMin.
z);
68 enum AXIS_TYPE get_LargestAxis() const noexcept
71 if ((s.
x >= s.
y) && (s.
x >= s.
z))
73 if ((s.
y >= s.
x) && (s.
y >= s.
z))
87 return get_Delta().get_Magnitude();
92 return get_Diameter() / 2.0f;
117 return &m_vMin.
m_a[0];
121 return &m_vMin.
m_a[0];
128 m_vMin =
cVector3f(k_FLT_MAX2, k_FLT_MAX2, k_FLT_MAX2);
129 m_vMax =
cVector3f(-k_FLT_MAX2, -k_FLT_MAX2, -k_FLT_MAX2);
134 m_vMin =
cVector3f(-k_FLT_MAX2, -k_FLT_MAX2, -k_FLT_MAX2);
135 m_vMax =
cVector3f(k_FLT_MAX2, k_FLT_MAX2, k_FLT_MAX2);
198 void v_GetLine(
cVariant& vArgs)
const;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cSegment3.h:20
void Scale(DVALUE_t fScale)
Change operators.
Definition: cSegment3.h:158
DVALUE_t get_MaxDelta() const noexcept
Definition: cSegment3.h:77
DVALUE_t get_Height() const noexcept
Definition: cSegment3.h:51
cSegment3f() noexcept
Definition: cSegment3.h:32
DVALUE_t get_Depth() const noexcept
Definition: cSegment3.h:59
void GrowN(DVALUE_t nValue)
Definition: cSegment3.h:189
UNITTEST_FRIEND(cSegment3)
DVALUE_t get_HeightMax() const noexcept
Definition: cSegment3.h:55
DVALUE_t get_Width() const noexcept
Definition: cSegment3.h:47
cSegment3f(const cVector3f &v1, const cVector3f &v2) noexcept
Definition: cSegment3.h:37
void Offset(const cVector3f &vOffset)
Definition: cSegment3.h:179
void SetRay(const cVector3f &vOrigin, const cVector3f &vDir, DVALUE_t fDist)
Definition: cSegment3.h:146
void Grow(const cVector3f &vOffset)
Definition: cSegment3.h:184
void SetOne() noexcept
Definition: cSegment3.h:137
DVALUE_t get_Radius() const
Definition: cSegment3.h:89
float DVALUE_t
Dimension value type.
Definition: cSegment3.h:27
void SetZero() noexcept
Definition: cSegment3.h:142
cVector3f m_vMin
a vertex on the line segment
Definition: cSegment3.h:28
cVector3f get_Center() const noexcept
Definition: cSegment3.h:42
void SetMax() noexcept
Definition: cSegment3.h:131
cVector3f m_vMax
Definition: cSegment3.h:29
void SetMin() noexcept
Definition: cSegment3.h:125
DVALUE_t GetDistanceTo(const cVector3f &v) const
Definition: cSegment3.h:95
void ScaleVect(const cVector3f &vScale)
Definition: cSegment3.h:165
DVALUE_t get_Diameter() const
Definition: cSegment3.h:83
void ScaleY(DVALUE_t fScaleY)
Definition: cSegment3.h:171
cVector3f get_Delta() const noexcept
Definition: cSegment3.h:63
Definition: cVariant.h:26
TYPE m_a[k_nDim]
Definition: cVecT.h:543
TYPE y
Definition: cVecT.h:545
TYPE z
Definition: cVecT.h:545
TYPE m_x
Definition: cVecT.h:544
TYPE m_y
Definition: cVecT.h:544
TYPE x
Definition: cVecT.h:545
TYPE get_Magnitude() const noexcept
Definition: cVecT.h:129
bool put_Magnitude(TYPE nLength)
Definition: cVecT.h:350
UNITTEST2_PREDEF(cQuadtree)
AXIS_TYPE
Definition: cVector.h:25
@ AXIS_Y
Definition: cVector.h:29
@ AXIS_X
Definition: cVector.h:28
@ AXIS_Z
Definition: cVector.h:30
int ITERATE_t
like size_t but signed
Definition: Index.h:28
bool operator==(const cTimeDouble &dt1, const cTimeDouble &dt2)
Definition: cTimeDouble.h:250
static TYPE Max3(TYPE a, TYPE b, TYPE c) noexcept
Definition: Calc.h:104
static TYPE Abs(TYPE a) noexcept
similar to ABS(n) macro. Does nothing for unsigned types.
static void Zero(void *pData, size_t nSizeBlock) noexcept
Definition: cMem.h:100