Ejemplo n.º 1
0
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());
        }
    }
}
Ejemplo n.º 2
0
void traverseHelper(Node* node) {
		if (node==NULL) return;
		traverseHelper(node->left);
		printf("%d ", node->x);
		traverseHelper(node->right);
		return;
}
Ejemplo n.º 3
0
void BVH::traverse(BVH::BVHVisitor* visitor){
    traverseHelper(visitor, 0, root);
}
Ejemplo n.º 4
0
/* 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;
}