gwnavruntime/math/box2f.h Source File
Go to the documentation of this file.
22 Box2f(
const Vec2f& _min,
const Vec2f& _max) : m_min(_min), m_max(_max) {}
25 bool operator==(
const Box2f& other)
const {
return m_min == other.m_min && m_max == other.m_max; }
26 bool operator!=(
const Box2f& other)
const {
return !operator==(other); }
35 bool IsValid()
const {
return m_min <= m_max; }
37 void Set(
const Vec2f& min_,
const Vec2f& max_)
51 const Vec2f& Min()
const {
return m_min; }
52 const Vec2f& Max()
const {
return m_max; }
58 void ExpandByPos(
const T& pos)
60 m_min.x = Kaim::Min(m_min.x, pos.x);
61 m_min.y = Kaim::Min(m_min.y, pos.y);
62 m_max.x = Kaim::Max(m_max.x, pos.x);
63 m_max.y = Kaim::Max(m_max.y, pos.y);
67 void ExpandByBox(
const T& box)
69 m_min.x = Kaim::Min(m_min.x, box.m_min.x);
70 m_max.x = Kaim::Max(m_max.x, box.m_max.x);
71 m_min.y = Kaim::Min(m_min.y, box.m_min.y);
72 m_max.y = Kaim::Max(m_max.y, box.m_max.y);
77 Vec2f e(enlargement, enlargement);
83 bool DoesContain(
const T& P)
const {
return P.x >= m_min.x && P.x <= m_max.x && P.y >= m_min.y && P.y <= m_max.y; }
86 bool DoesContainStrictly(
const T& P)
const {
return P.x > m_min.x && P.x < m_max.x && P.y > m_min.y && P.y < m_max.y; }
96 SwapEndianness(e,
self.m_min);
97 SwapEndianness(e,
self.m_max);
100 template <
class OSTREAM>
101 inline OSTREAM& operator<<(OSTREAM& os,
const Box2f&
self)
103 os <<
"{" <<
self.Min() <<
"," <<
self.Max() <<
"}";
2d axis aligned box of 32bits floating points
Definition: box2f.h:15
#define KyFloat32MAXVAL
KyFloat32 max value
Definition: types.h:71
Box2f()
Set { {+infinite, +infinite}, {-infinite, -infinite} }.
Definition: box2f.h:21
KyFloat32 SizeY()
Return m_max.y - m_min.y.
Definition: box2f.h:55
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
2d vector using KyFloat32.
Definition: vec2f.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
void Clear()
Set { {+infinite, +infinite}, {-infinite, -infinite} }.
Definition: box2f.h:29
float KyFloat32
float
Definition: types.h:32
KyFloat32 SizeX()
Return m_max.x - m_min.x.
Definition: box2f.h:54