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>2019-03-20 18:29:30 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-20 18:42:31 +0300
commitf06dc36c35d6da1e2f3116752cf3245373f867b0 (patch)
tree0e2e1ff006f6d38eea1353db933c65f8c7f2b127 /source/blender/editors/mesh
parent3602071e47f4cb6613448c14c931fbd6ffb45ead (diff)
Select Similar: use kdtree de-duplication
Avoids redundant tree traversal when finding nearest.
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r--source/blender/editors/mesh/editmesh_select_similar.c6
1 files changed, 6 insertions, 0 deletions
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);
}