Changeset 859 for GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
- Timestamp:
- 04/28/06 12:23:14 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
r837 r859 714 714 715 715 void 716 KdTree::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 747 void 716 748 KdTree::CollectObjects(KdNode *n, ObjectContainer &objects) 717 749 {
Note: See TracChangeset
for help on using the changeset viewer.