Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-05-05 23:00:36 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-05-05 23:14:36 +0300
commitcc650c3d075566c760088e59a316c7efee14fd4a (patch)
tree86fa7276fdc5b0eef0e95a7b863bb05f79b9c971 /source/blender
parent7efdee75177eb43909e825499330c554d91853f1 (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.c6
-rw-r--r--source/blender/blenlib/BLI_kdopbvh.h2
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c8
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)
{