Commit: f06dc36c35d6da1e2f3116752cf3245373f867b0
Author: Campbell Barton
Date: Thu Mar 21 02:29:30 2019 +1100
Branches: master
https://developer.blender.org/rBf06dc36c35d6da1e2f3116752cf3245373f867b0
Select Similar: use kdtree de-duplication
Avoids redundant tree traversal when finding nearest.
===================================================================
M source/blender/editors/curve/editcurve_select.c
M source/blender/editors/mesh/editmesh_select_similar.c
M source/blender/editors/metaball/mball_edit.c
===================================================================
diff --git a/source/blender/editors/curve/editcurve_select.c
b/source/blender/editors/curve/editcurve_select.c
index 23d55ed8eca..c52e5d3d787 100644
--- a/source/blender/editors/curve/editcurve_select.c
+++ b/source/blender/editors/curve/editcurve_select.c
@@ -1613,9 +1613,11 @@ static int curve_select_similar_exec(bContext *C,
wmOperator *op)
}
if (tree_1d != NULL) {
+ BLI_kdtree_1d_deduplicate(tree_1d);
BLI_kdtree_1d_balance(tree_1d);
}
if (tree_3d != NULL) {
+ BLI_kdtree_3d_deduplicate(tree_3d);
BLI_kdtree_3d_balance(tree_3d);
}
diff --git a/source/blender/editors/mesh/editmesh_select_similar.c
b/source/blender/editors/mesh/editmesh_select_similar.c
index ae79bdbf66a..c9365e8d0fd 100644
--- a/source/blender/editors/mesh/editmesh_select_similar.c
+++ b/source/blender/editors/mesh/editmesh_select_similar.c
@@ -333,12 +333,15 @@ static int similar_face_select_exec(bContext *C,
wmOperator *op)
BLI_assert((type != SIMFACE_FREESTYLE) || (face_data_value !=
SIMFACE_DATA_NONE));
if (tree_1d != NULL) {
+ BLI_kdtree_1d_deduplicate(tree_1d);
BLI_kdtree_1d_balance(tree_1d);
}
if (tree_3d != NULL) {
+ BLI_kdtree_3d_deduplicate(tree_3d);
BLI_kdtree_3d_balance(tree_3d);
}
if (tree_4d != NULL) {
+ BLI_kdtree_4d_deduplicate(tree_4d);
BLI_kdtree_4d_balance(tree_4d);
}
@@ -804,9 +807,11 @@ static int similar_edge_select_exec(bContext *C,
wmOperator *op)
BLI_assert((type != SIMEDGE_FREESTYLE) || (edge_data_value !=
SIMEDGE_DATA_NONE));
if (tree_1d != NULL) {
+ BLI_kdtree_1d_deduplicate(tree_1d);
BLI_kdtree_1d_balance(tree_1d);
}
if (tree_3d != NULL) {
+ BLI_kdtree_3d_deduplicate(tree_3d);
BLI_kdtree_3d_balance(tree_3d);
}
@@ -1126,6 +1131,7 @@ static int similar_vert_select_exec(bContext *C,
wmOperator *op)
/* Remove duplicated entries. */
if (tree_3d != NULL) {
+ BLI_kdtree_3d_deduplicate(tree_3d);
BLI_kdtree_3d_balance(tree_3d);
}
diff --git a/source/blender/editors/metaball/mball_edit.c
b/source/blender/editors/metaball/mball_edit.c
index 2aa9ab4c914..8da87a4fdd1 100644
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@ -363,9 +363,11 @@ static int mball_select_similar_exec(bContext *C,
wmOperator *op)
}
if (tree_1d != NULL) {
+ BLI_kdtree_1d_deduplicate(tree_1d);
BLI_kdtree_1d_balance(tree_1d);
}
if (tree_3d != NULL) {
+ BLI_kdtree_3d_deduplicate(tree_3d);
BLI_kdtree_3d_balance(tree_3d);
}
/* Select MetaBalls with desired type. */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs