本文整理汇总了C++中Bounds::intersects方法的典型用法代码示例。如果您正苦于以下问题:C++ Bounds::intersects方法的具体用法?C++ Bounds::intersects怎么用?C++ Bounds::intersects使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bounds
的用法示例。
在下文中一共展示了Bounds::intersects方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: remove
bool
remove(const Bounds& area, const Bounds& b)
{
if (m_leaf)
return area.contains(m_data.item);
int cdel = 0;
for (int i = 0; i < 4; ++i)
{
Node** c = m_data.children + i;
if (!*c)
continue;
Bounds cb = b.quadrant(i);
if (area.intersects(cb) && (*c)->remove(area, cb))
{
delete *c;
* c = 0;
++cdel;
}
}
return cdel == 4; // true if all sub-nodes were removed
}
示例2: iterate
void
iterate(QuadTree::Iteration& iter, const Bounds& area, const Bounds& b) const
{
if (m_leaf && b.contains(m_data.item))
iter.process(m_data.item);
else
for (int i = 0; i < 4; ++i)
{
if (m_data.children[i])
{
Bounds cb = b.quadrant(i);
if (area.intersects(cb))
m_data.children[i]->iterate(iter, area, cb);
}
}
}