diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-05-05 23:00:36 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-05-05 23:14:36 +0300 |
commit | cc650c3d075566c760088e59a316c7efee14fd4a (patch) | |
tree | 86fa7276fdc5b0eef0e95a7b863bb05f79b9c971 /source/blender | |
parent | 7efdee75177eb43909e825499330c554d91853f1 (diff) |
Add asserts to check bvhutils args are correct
Would have prevented previous error going unnoticed.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/bvhutils.c | 6 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_kdopbvh.h | 2 | ||||
-rw-r--r-- | source/blender/blenlib/intern/BLI_kdopbvh.c | 8 |
3 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index 5e9c18544b7..a2998e869af 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -419,6 +419,7 @@ static BVHTree *bvhtree_from_editmesh_verts_create_tree( } BLI_bvhtree_insert(tree, i, eve->co, 1); } + BLI_assert(BLI_bvhtree_get_size(tree) == verts_num_active); BLI_bvhtree_balance(tree); } @@ -454,7 +455,7 @@ static BVHTree *bvhtree_from_mesh_verts_create_tree( } BLI_bvhtree_insert(tree, i, vert[i].co, 1); } - + BLI_assert(BLI_bvhtree_get_size(tree) == verts_num_active); BLI_bvhtree_balance(tree); } } @@ -728,6 +729,7 @@ static BVHTree *bvhtree_from_mesh_faces_create_tree( BLI_bvhtree_insert(tree, i, co[0], face[i].v4 ? 4 : 3); } } + BLI_assert(BLI_bvhtree_get_size(tree) == faces_num_active); BLI_bvhtree_balance(tree); } } @@ -892,6 +894,7 @@ static BVHTree *bvhtree_from_editmesh_looptri_create_tree( } } } + BLI_assert(BLI_bvhtree_get_size(tree) == looptri_num_active); BLI_bvhtree_balance(tree); } } @@ -938,6 +941,7 @@ static BVHTree *bvhtree_from_mesh_looptri_create_tree( BLI_bvhtree_insert(tree, i, co[0], 3); } } + BLI_assert(BLI_bvhtree_get_size(tree) == looptri_num_active); BLI_bvhtree_balance(tree); } } diff --git a/source/blender/blenlib/BLI_kdopbvh.h b/source/blender/blenlib/BLI_kdopbvh.h index be792669ef1..4813e7b40ca 100644 --- a/source/blender/blenlib/BLI_kdopbvh.h +++ b/source/blender/blenlib/BLI_kdopbvh.h @@ -132,6 +132,8 @@ BVHTreeOverlap *BLI_bvhtree_overlap( const BVHTree *tree1, const BVHTree *tree2, unsigned int *r_overlap_tot, BVHTree_OverlapCallback callback, void *userdata); +int BLI_bvhtree_get_size(const BVHTree *tree); + float BLI_bvhtree_getepsilon(const BVHTree *tree); /* find nearest node to the given coordinates diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index bba3fdb37bc..f0fc2c70708 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -1114,6 +1114,14 @@ void BLI_bvhtree_update_tree(BVHTree *tree) for (; index >= root; index--) node_join(tree, *index); } +/** + * Number of times #BLI_bvhtree_insert has been called. + * mainly useful for asserts functions to check we added the correct number. + */ +int BLI_bvhtree_get_size(const BVHTree *tree) +{ + return tree->totleaf; +} float BLI_bvhtree_getepsilon(const BVHTree *tree) { |