void BVH::traverseHelper(BVH::BVHVisitor* visitor, int level, BVHNode* currRoot) { Assert(visitor != NULL); if(currRoot == NULL){ return; }else{ const bool isLeaf = currRoot->isLeaf; if(!isLeaf){ traverseHelper(visitor, level + 1, currRoot->getLeftChild()); } visitor->visit( isLeaf, level, currRoot->bbox, isLeaf ? currRoot->getNumPrims() : 0 ); if(!isLeaf){ traverseHelper(visitor, level + 1, currRoot->getRightChild()); } } }
void traverseHelper(Node* node) { if (node==NULL) return; traverseHelper(node->left); printf("%d ", node->x); traverseHelper(node->right); return; }
void BVH::traverse(BVH::BVHVisitor* visitor){ traverseHelper(visitor, 0, root); }
/* Prints all the nodes in the order (i.e. from smallest value in tree to the largest value in order). Each value should be followed by a newline. */ void bst_traverseInOrder(BST * tree) { if (tree==NULL) return; traverseHelper(tree->root); printf("\n"); return; }