Ejemplo n.º 1
0
void QuadtreeNode<Item>::GetFromRectangle(const Rectangle &rect,
                                          Items *items) const {
  if (!rect.DoesIntersect(rect_)) {
    return;
  }

  typename Items::const_iterator it;
  for (it = items_.begin(); it != items_.end(); ++it) {
    if (rect.IsPositionIn(it->second)) {
      (*items)[it->first] = it->second;
    }
  }

  if (!nodes_) {
    return;
  }

  for (int i = 0; i < 4; i++) {
    nodes_->at(i).GetFromRectangle(rect, items);
  }
}