Ignore:
Timestamp:
04/28/06 12:23:14 (18 years ago)
Author:
bittner
Message:

apply filter routine for working modules

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp

    r837 r859  
    714714 
    715715void 
     716KdTree::CollectObjects(const AxisAlignedBox3 &box, 
     717                                           ObjectContainer &objects) 
     718{ 
     719  stack<KdNode *> nodeStack; 
     720 
     721  nodeStack.push(mRoot); 
     722 
     723  while (!nodeStack.empty()) { 
     724    KdNode *node = nodeStack.top(); 
     725    nodeStack.pop(); 
     726    if (node->IsLeaf()) { 
     727      KdLeaf *leaf = (KdLeaf *)node; 
     728      for (int j=0; j < leaf->mObjects.size(); j++) { 
     729                Intersectable *object = leaf->mObjects[j]; 
     730                if (!object->Mailed()) { 
     731                  object->Mail(); 
     732                  objects.push_back(object); 
     733                } 
     734      } 
     735    } else { 
     736      KdInterior *interior = (KdInterior *)node; 
     737 
     738          if ( box.Max()[interior->mAxis] > interior->mPosition ) 
     739                nodeStack.push(interior->mFront); 
     740  
     741          if (box.Min()[interior->mAxis] < interior->mPosition) 
     742                nodeStack.push(interior->mBack); 
     743    } 
     744  } 
     745} 
     746 
     747void 
    716748KdTree::CollectObjects(KdNode *n, ObjectContainer &objects) 
    717749{ 
Note: See TracChangeset for help on using the changeset viewer.