diff options
Diffstat (limited to 'source/blender/render/intern/raytrace/vbvh.h')
-rw-r--r-- | source/blender/render/intern/raytrace/vbvh.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/render/intern/raytrace/vbvh.h b/source/blender/render/intern/raytrace/vbvh.h index 21c3c0b4c01..06188ede8c6 100644 --- a/source/blender/render/intern/raytrace/vbvh.h +++ b/source/blender/render/intern/raytrace/vbvh.h @@ -26,12 +26,13 @@ * * ***** END GPL LICENSE BLOCK ***** */ -#include <assert.h> +#include <assert.h> #include <algorithm> -#include "rayobject_rtbuild.h" + #include "BLI_memarena.h" +#include "rayobject_rtbuild.h" /* * VBVHNode represents a BVHNode with support for a variable number of childrens @@ -167,12 +168,11 @@ struct BuildBinaryVBVH Node *node = create_node(); - INIT_MINMAX(node->bb, node->bb+3); - rtbuild_merge_bb(builder, node->bb, node->bb+3); - Node **child = &node->child; int nc = rtbuild_split(builder); + INIT_MINMAX(node->bb, node->bb+3); + assert(nc == 2); for(int i=0; i<nc; i++) { @@ -180,6 +180,8 @@ struct BuildBinaryVBVH rtbuild_get_child(builder, i, &tmp); *child = _transform(&tmp); + DO_MIN((*child)->bb, node->bb); + DO_MAX((*child)->bb+3, node->bb+3); child = &((*child)->sibling); } |