Пример #1
0
void OctreePointSet::BoxQuery(const Box3D& b,vector<Vector3>& points,vector<int>& ids) const
{
  points.resize(0);
  ids.resize(0);
  vector<int> boxnodes;
  BoxLookup(b,boxnodes);
  for(size_t i=0;i<boxnodes.size();i++) {
    const vector<Vector3>& pts = pointLists[boxnodes[i]];
    const vector<int>& bids = idLists[boxnodes[i]];
    for(size_t k=0;k<pts.size();k++)
      if(b.contains(pts[k])) {
	points.push_back(pts[k]);
	ids.push_back(bids[k]);
      }
  }
}