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:
authorGermano Cavalcante <germano.costa@ig.com.br>2022-04-06 02:33:06 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2022-04-06 02:33:06 +0300
commit931ae424b9ef09b446d9584df51d27ac2a137cf2 (patch)
tree621f31a3f2a8bba0a9923a44bb535d63d13fcdeb
parent9fbf7f1180501fc868a38dccecfbc71f6747b4e9 (diff)
BVH Utils: remove 'isolate' parameter
This is an internal usage parameter. No functional changes.
-rw-r--r--source/blender/blenkernel/BKE_bvhutils.h21
-rw-r--r--source/blender/blenkernel/intern/bvhutils.cc120
-rw-r--r--source/blender/blenkernel/intern/mesh_remap.c6
-rw-r--r--source/blender/editors/transform/transform_snap_object.cc9
4 files changed, 59 insertions, 97 deletions
diff --git a/source/blender/blenkernel/BKE_bvhutils.h b/source/blender/blenkernel/BKE_bvhutils.h
index c957465a654..8f33003fa9d 100644
--- a/source/blender/blenkernel/BKE_bvhutils.h
+++ b/source/blender/blenkernel/BKE_bvhutils.h
@@ -107,8 +107,7 @@ BVHTree *bvhtree_from_editmesh_verts_ex(BVHTreeFromEditMesh *data,
int verts_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
/**
* Builds a BVH-tree where nodes are the given vertices (NOTE: does not copy given `vert`!).
@@ -124,8 +123,7 @@ BVHTree *bvhtree_from_mesh_verts_ex(struct BVHTreeFromMesh *data,
int verts_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
BVHTree *bvhtree_from_editmesh_edges(
BVHTreeFromEditMesh *data, struct BMEditMesh *em, float epsilon, int tree_type, int axis);
@@ -139,8 +137,7 @@ BVHTree *bvhtree_from_editmesh_edges_ex(BVHTreeFromEditMesh *data,
int edges_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
/**
* Builds a BVH-tree where nodes are the given edges.
@@ -158,8 +155,7 @@ BVHTree *bvhtree_from_mesh_edges_ex(struct BVHTreeFromMesh *data,
int edges_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
/**
* Builds a BVH-tree where nodes are the given tessellated faces
@@ -178,8 +174,7 @@ BVHTree *bvhtree_from_mesh_faces_ex(struct BVHTreeFromMesh *data,
int faces_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
BVHTree *bvhtree_from_editmesh_looptri(
BVHTreeFromEditMesh *data, struct BMEditMesh *em, float epsilon, int tree_type, int axis);
@@ -193,8 +188,7 @@ BVHTree *bvhtree_from_editmesh_looptri_ex(BVHTreeFromEditMesh *data,
int looptri_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
/**
* Builds a BVH-tree where nodes are the looptri faces of the given mesh.
@@ -210,8 +204,7 @@ BVHTree *bvhtree_from_mesh_looptri_ex(struct BVHTreeFromMesh *data,
int looptri_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate);
+ int axis);
/**
* Builds or queries a BVH-cache for the cache BVH-tree of the request type.
diff --git a/source/blender/blenkernel/intern/bvhutils.cc b/source/blender/blenkernel/intern/bvhutils.cc
index abbd4ced94b..d2e1c04a923 100644
--- a/source/blender/blenkernel/intern/bvhutils.cc
+++ b/source/blender/blenkernel/intern/bvhutils.cc
@@ -734,14 +734,13 @@ BVHTree *bvhtree_from_editmesh_verts_ex(BVHTreeFromEditMesh *data,
int verts_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_editmesh_verts_create_tree(
epsilon, tree_type, axis, em, verts_mask, verts_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
bvhtree_from_editmesh_setup_data(tree, BVHTREE_FROM_EM_VERTS, em, data);
@@ -753,7 +752,7 @@ BVHTree *bvhtree_from_editmesh_verts_ex(BVHTreeFromEditMesh *data,
BVHTree *bvhtree_from_editmesh_verts(
BVHTreeFromEditMesh *data, BMEditMesh *em, float epsilon, int tree_type, int axis)
{
- return bvhtree_from_editmesh_verts_ex(data, em, nullptr, -1, epsilon, tree_type, axis, false);
+ return bvhtree_from_editmesh_verts_ex(data, em, nullptr, -1, epsilon, tree_type, axis);
}
BVHTree *bvhtree_from_mesh_verts_ex(BVHTreeFromMesh *data,
@@ -763,14 +762,13 @@ BVHTree *bvhtree_from_mesh_verts_ex(BVHTreeFromMesh *data,
int verts_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_mesh_verts_create_tree(
epsilon, tree_type, axis, vert, verts_num, verts_mask, verts_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
/* Setup BVHTreeFromMesh */
@@ -870,14 +868,13 @@ BVHTree *bvhtree_from_editmesh_edges_ex(BVHTreeFromEditMesh *data,
int edges_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_editmesh_edges_create_tree(
epsilon, tree_type, axis, em, edges_mask, edges_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
bvhtree_from_editmesh_setup_data(tree, BVHTREE_FROM_EM_EDGES, em, data);
@@ -889,7 +886,7 @@ BVHTree *bvhtree_from_editmesh_edges_ex(BVHTreeFromEditMesh *data,
BVHTree *bvhtree_from_editmesh_edges(
BVHTreeFromEditMesh *data, BMEditMesh *em, float epsilon, int tree_type, int axis)
{
- return bvhtree_from_editmesh_edges_ex(data, em, nullptr, -1, epsilon, tree_type, axis, false);
+ return bvhtree_from_editmesh_edges_ex(data, em, nullptr, -1, epsilon, tree_type, axis);
}
BVHTree *bvhtree_from_mesh_edges_ex(BVHTreeFromMesh *data,
@@ -900,14 +897,13 @@ BVHTree *bvhtree_from_mesh_edges_ex(BVHTreeFromMesh *data,
int edges_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_mesh_edges_create_tree(
vert, edge, edges_num, edges_mask, edges_num_active, epsilon, tree_type, axis);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
/* Setup BVHTreeFromMesh */
@@ -979,14 +975,13 @@ BVHTree *bvhtree_from_mesh_faces_ex(BVHTreeFromMesh *data,
int faces_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_mesh_faces_create_tree(
epsilon, tree_type, axis, vert, face, numFaces, faces_mask, faces_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
/* Setup BVHTreeFromMesh */
@@ -1103,8 +1098,7 @@ BVHTree *bvhtree_from_editmesh_looptri_ex(BVHTreeFromEditMesh *data,
int looptri_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
/* BMESH specific check that we have tessfaces,
* we _could_ tessellate here but rather not - campbell */
@@ -1113,7 +1107,7 @@ BVHTree *bvhtree_from_editmesh_looptri_ex(BVHTreeFromEditMesh *data,
tree = bvhtree_from_editmesh_looptri_create_tree(
epsilon, tree_type, axis, em, looptri_mask, looptri_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
bvhtree_from_editmesh_setup_data(tree, BVHTREE_FROM_EM_LOOPTRI, em, data);
@@ -1124,7 +1118,7 @@ BVHTree *bvhtree_from_editmesh_looptri_ex(BVHTreeFromEditMesh *data,
BVHTree *bvhtree_from_editmesh_looptri(
BVHTreeFromEditMesh *data, BMEditMesh *em, float epsilon, int tree_type, int axis)
{
- return bvhtree_from_editmesh_looptri_ex(data, em, nullptr, -1, epsilon, tree_type, axis, false);
+ return bvhtree_from_editmesh_looptri_ex(data, em, nullptr, -1, epsilon, tree_type, axis);
}
BVHTree *bvhtree_from_mesh_looptri_ex(BVHTreeFromMesh *data,
@@ -1136,8 +1130,7 @@ BVHTree *bvhtree_from_mesh_looptri_ex(BVHTreeFromMesh *data,
int looptri_num_active,
float epsilon,
int tree_type,
- int axis,
- const bool isolate)
+ int axis)
{
BVHTree *tree = nullptr;
tree = bvhtree_from_mesh_looptri_create_tree(epsilon,
@@ -1150,7 +1143,7 @@ BVHTree *bvhtree_from_mesh_looptri_ex(BVHTreeFromMesh *data,
looptri_mask,
looptri_num_active);
- bvhtree_balance(tree, isolate);
+ bvhtree_balance(tree, false);
if (data) {
/* Setup BVHTreeFromMesh */
@@ -1287,15 +1280,8 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
mesh->medge, mesh->totedge, mesh->mvert, verts_len, &loose_vert_len);
}
- data->tree = bvhtree_from_mesh_verts_ex(nullptr,
- mesh->mvert,
- verts_len,
- loose_verts_mask,
- loose_vert_len,
- 0.0f,
- tree_type,
- 6,
- lock_started);
+ data->tree = bvhtree_from_mesh_verts_create_tree(
+ 0.0f, tree_type, 6, mesh->mvert, verts_len, loose_verts_mask, loose_vert_len);
if (loose_verts_mask != nullptr) {
MEM_freeN(loose_verts_mask);
@@ -1312,16 +1298,14 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
loose_edges_mask = loose_edges_map_get(mesh->medge, edges_len, &loose_edges_len);
}
- data->tree = bvhtree_from_mesh_edges_ex(nullptr,
- mesh->mvert,
- mesh->medge,
- edges_len,
- loose_edges_mask,
- loose_edges_len,
- 0.0,
- tree_type,
- 6,
- lock_started);
+ data->tree = bvhtree_from_mesh_edges_create_tree(mesh->mvert,
+ mesh->medge,
+ edges_len,
+ loose_edges_mask,
+ loose_edges_len,
+ 0.0f,
+ tree_type,
+ 6);
if (loose_edges_mask != nullptr) {
MEM_freeN(loose_edges_mask);
@@ -1329,19 +1313,10 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
} break;
case BVHTREE_FROM_FACES: {
- int num_faces = mesh->totface;
- BLI_assert(!(num_faces == 0 && mesh->totpoly != 0));
-
- data->tree = bvhtree_from_mesh_faces_ex(nullptr,
- mesh->mvert,
- mesh->mface,
- num_faces,
- nullptr,
- -1,
- 0.0,
- tree_type,
- 6,
- lock_started);
+ BLI_assert(!(mesh->totface == 0 && mesh->totpoly != 0));
+
+ data->tree = bvhtree_from_mesh_faces_create_tree(
+ 0.0f, tree_type, 6, mesh->mvert, mesh->mface, mesh->totface, nullptr, -1);
} break;
case BVHTREE_FROM_LOOPTRI:
@@ -1355,17 +1330,15 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
mesh->mpoly, looptri_len, &looptri_mask_active_len);
}
- data->tree = bvhtree_from_mesh_looptri_ex(nullptr,
- mesh->mvert,
- mesh->mloop,
- data->looptri,
- looptri_len,
- looptri_mask,
- looptri_mask_active_len,
- 0.0,
- tree_type,
- 6,
- lock_started);
+ data->tree = bvhtree_from_mesh_looptri_create_tree(0.0f,
+ tree_type,
+ 6,
+ mesh->mvert,
+ mesh->mloop,
+ data->looptri,
+ looptri_len,
+ looptri_mask,
+ looptri_mask_active_len);
if (looptri_mask != nullptr) {
MEM_freeN(looptri_mask);
@@ -1379,6 +1352,8 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
break;
}
+ bvhtree_balance(data->tree, lock_started);
+
/* Save on cache for later use */
// printf("BVHTree built and saved on cache\n");
BLI_assert(data->cached == false);
@@ -1422,16 +1397,13 @@ BVHTree *BKE_bvhtree_from_editmesh_get(BVHTreeFromEditMesh *data,
switch (bvh_cache_type) {
case BVHTREE_FROM_EM_VERTS:
- data->tree = bvhtree_from_editmesh_verts_ex(
- nullptr, em, nullptr, -1, 0.0f, tree_type, 6, lock_started);
+ data->tree = bvhtree_from_editmesh_verts_create_tree(0.0f, tree_type, 6, em, nullptr, -1);
break;
case BVHTREE_FROM_EM_EDGES:
- data->tree = bvhtree_from_editmesh_edges_ex(
- nullptr, em, nullptr, -1, 0.0f, tree_type, 6, lock_started);
+ data->tree = bvhtree_from_editmesh_edges_create_tree(0.0f, tree_type, 6, em, nullptr, -1);
break;
case BVHTREE_FROM_EM_LOOPTRI:
- data->tree = bvhtree_from_editmesh_looptri_ex(
- nullptr, em, nullptr, -1, 0.0f, tree_type, 6, lock_started);
+ data->tree = bvhtree_from_editmesh_looptri_create_tree(0.0f, tree_type, 6, em, nullptr, -1);
break;
case BVHTREE_FROM_VERTS:
case BVHTREE_FROM_EDGES:
@@ -1445,6 +1417,8 @@ BVHTree *BKE_bvhtree_from_editmesh_get(BVHTreeFromEditMesh *data,
break;
}
+ bvhtree_balance(data->tree, lock_started);
+
if (bvh_cache_p) {
/* Save on cache for later use */
// printf("BVHTree built and saved on cache\n");
diff --git a/source/blender/blenkernel/intern/mesh_remap.c b/source/blender/blenkernel/intern/mesh_remap.c
index aed52bd9cab..9a4c01ec7aa 100644
--- a/source/blender/blenkernel/intern/mesh_remap.c
+++ b/source/blender/blenkernel/intern/mesh_remap.c
@@ -1514,8 +1514,7 @@ void BKE_mesh_remap_calc_loops_from_mesh(const int mode,
num_verts_active,
0.0,
2,
- 6,
- false);
+ 6);
}
MEM_freeN(verts_active);
@@ -1553,8 +1552,7 @@ void BKE_mesh_remap_calc_loops_from_mesh(const int mode,
num_looptri_active,
0.0,
2,
- 6,
- false);
+ 6);
}
MEM_freeN(looptri_active);
diff --git a/source/blender/editors/transform/transform_snap_object.cc b/source/blender/editors/transform/transform_snap_object.cc
index 3489cfc4cda..eaa657ecbf3 100644
--- a/source/blender/editors/transform/transform_snap_object.cc
+++ b/source/blender/editors/transform/transform_snap_object.cc
@@ -900,8 +900,7 @@ static bool raycastEditMesh(SnapObjectContext *sctx,
sctx->callbacks.edit_mesh.test_face_fn,
sctx->callbacks.edit_mesh.user_data);
- bvhtree_from_editmesh_looptri_ex(
- treedata, em, elem_mask, looptri_num_active, 0.0f, 4, 6, false);
+ bvhtree_from_editmesh_looptri_ex(treedata, em, elem_mask, looptri_num_active, 0.0f, 4, 6);
MEM_freeN(elem_mask);
}
@@ -2553,8 +2552,7 @@ static short snapEditMesh(SnapObjectContext *sctx,
(bool (*)(BMElem *, void *))sctx->callbacks.edit_mesh.test_vert_fn,
sctx->callbacks.edit_mesh.user_data);
- bvhtree_from_editmesh_verts_ex(
- &treedata, em, verts_mask, verts_num_active, 0.0f, 2, 6, false);
+ bvhtree_from_editmesh_verts_ex(&treedata, em, verts_mask, verts_num_active, 0.0f, 2, 6);
MEM_freeN(verts_mask);
}
else {
@@ -2586,8 +2584,7 @@ static short snapEditMesh(SnapObjectContext *sctx,
(bool (*)(BMElem *, void *))sctx->callbacks.edit_mesh.test_edge_fn,
sctx->callbacks.edit_mesh.user_data);
- bvhtree_from_editmesh_edges_ex(
- &treedata, em, edges_mask, edges_num_active, 0.0f, 2, 6, false);
+ bvhtree_from_editmesh_edges_ex(&treedata, em, edges_mask, edges_num_active, 0.0f, 2, 6);
MEM_freeN(edges_mask);
}
else {