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); } }