void PCZSceneManager::findNodesIn( const Ray &r, PCZSceneNodeList &list, PCZone * startZone, PCZSceneNode *exclude ) { PortalList visitedPortals; if (startZone) { // start in startzone, and recurse through portals if necessary startZone->_findNodes(r, list, visitedPortals, true, true, exclude); } else { ZoneMap::iterator i; PCZone * zone; for (i = mZones.begin(); i != mZones.end(); i++) { zone = i->second; zone->_findNodes( r, list, visitedPortals, false, false, exclude ); } } }
void PCZSceneManager::findNodesIn( const PlaneBoundedVolume &volume, PCZSceneNodeList &list, PCZone * startZone, PCZSceneNode *exclude ) { PortalList visitedPortals; if (startZone) { // start in startzone, and recurse through portals if necessary startZone->_findNodes(volume, list, visitedPortals, true, true, exclude); } else { // no start zone specified, so check all zones ZoneMap::iterator i; PCZone * zone; for (i = mZones.begin(); i != mZones.end(); i++) { zone = i->second; zone->_findNodes( volume, list, visitedPortals, false, false, exclude ); } } }