gwnavruntime/math/box2iiterator.h Source File
Go to the documentation of this file.
24 if (m_box !=
nullptr && box.IsValid())
31 bool operator==(
const Box2iRowMajorIterator& it)
const {
return m_box == it.m_box && m_currentIdx == it.m_currentIdx; }
32 bool operator!=(
const Box2iRowMajorIterator& it)
const {
return m_box != it.m_box || m_currentIdx != it.m_currentIdx; }
36 if (IsFinished() ==
false)
38 if (m_pos.x < m_box->Max().x)
43 else if (m_pos.y < m_box->Max().y)
45 m_pos.x = m_box->Min().x;
57 bool IsFinished()
const {
return m_currentIdx < 0 || m_box ==
nullptr; }
59 KyInt32 GetRowMajorIndex()
const {
return m_currentIdx; }
60 const Vec2i& GetPos()
const {
return m_pos; }
111 if (m_innerBox !=
nullptr && m_outerBox !=
nullptr && m_innerBox->IsValid() && m_outerBox->IsValid())
113 KY_LOG_ERROR_IF(m_outerBox->DoesContain(m_innerBox->Min()) ==
false || m_outerBox->DoesContain(m_innerBox->Max()) ==
false ,
114 (
"Error in boxes provided for Box2iRowMajorIterator. the innerBox must be fully included in the outerBox"));
115 m_pos = m_innerBox->Min();
123 if (IsFinished() ==
false)
125 if (m_pos.x < m_innerBox->Max().x)
134 else if (m_pos.y < m_innerBox->Max().y)
136 m_pos.x = m_innerBox->Min().x;
139 m_outerBoxIdx += (m_outerBox->
CountX() - m_innerBox->
CountX()) + 1;
152 bool IsFinished()
const {
return m_innerBoxIdx < 0 || m_outerBoxIdx < 0 || m_innerBox ==
nullptr || m_outerBox ==
nullptr; }
154 KyInt32 GetInnerBoxRowMajorIndex()
const {
return m_innerBoxIdx; }
155 KyInt32 GetOuterBoxRowMajorIndex()
const {
return m_outerBoxIdx; }
156 const Vec2i& GetPos()
const {
return m_pos; }
160 const Box2i* m_innerBox;
161 const Box2i* m_outerBox;
#define KyInt32MINVAL
KyInt32 min value
Definition: types.h:61
2d axis aligned box of 32bits integers. Very Important: CountX() returns m_max.x - m_min...
Definition: box2i.h:17
Box2iRowMajorIterator.
Definition: box2iiterator.h:16
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
KyInt32 GetRowMajorIndex(const Vec2i &pos) const
Compute index of position in box, where index is incremented in a outer-loop on Y and inner-loop on X...
Definition: box2i.h:101
2d vector using KyInt32
Definition: vec2i.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
std::int32_t KyInt32
int32_t
Definition: types.h:24
KyInt32 CountX() const
Return m_max.x - m_min.x + 1.
Definition: box2i.h:55
Browse a box that is included in a bigger box.
Definition: box2iiterator.h:96