[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57586] trunk/blender/source/blender/ blenkernel/intern/editmesh_bvh.c: correct editmesh BKE_bmbvh_find_vert_closest(), distances are expected to be squared.

Campbell Barton ideasman42 at gmail.com
Wed Jun 19 22:11:29 CEST 2013


Revision: 57586
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57586
Author:   campbellbarton
Date:     2013-06-19 20:11:28 +0000 (Wed, 19 Jun 2013)
Log Message:
-----------
correct editmesh BKE_bmbvh_find_vert_closest(), distances are expected to be squared.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/editmesh_bvh.c

Modified: trunk/blender/source/blender/blenkernel/intern/editmesh_bvh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editmesh_bvh.c	2013-06-19 19:59:49 UTC (rev 57585)
+++ trunk/blender/source/blender/blenkernel/intern/editmesh_bvh.c	2013-06-19 20:11:28 UTC (rev 57586)
@@ -382,7 +382,7 @@
 	bmbvh_tri_from_face(tri_cos, ltri, bmcb_data->cos_cage);
 
 	for (i = 0; i < 3; i++) {
-		dist = len_v3v3(hit->co, tri_cos[i]);
+		dist = len_squared_v3v3(hit->co, tri_cos[i]);
 		if (dist < hit->dist && dist < maxdist) {
 			copy_v3_v3(hit->co, tri_cos[i]);
 			/* XXX, normal ignores cage */
@@ -398,17 +398,17 @@
 {
 	BVHTreeNearest hit;
 	struct VertSearchUserData bmcb_data;
+	const float maxdist_sq = maxdist * maxdist;
 
 	if (bmtree->cos_cage) BLI_assert(!(bmtree->em->bm->elem_index_dirty & BM_VERT));
 
 	copy_v3_v3(hit.co, co);
-	/* XXX, why x5, scampbell */
-	hit.dist = maxdist * 5;
+	hit.dist = maxdist_sq;
 	hit.index = -1;
 
 	bmcb_data.looptris = (const BMLoop *(*)[3])bmtree->em->looptris;
 	bmcb_data.cos_cage = (const float (*)[3])bmtree->cos_cage;
-	bmcb_data.maxdist = maxdist;
+	bmcb_data.maxdist = maxdist_sq;
 
 	BLI_bvhtree_find_nearest(bmtree->tree, co, &hit, bmbvh_find_vert_closest_cb, &bmcb_data);
 	if (hit.dist != FLT_MAX && hit.index != -1) {




More information about the Bf-blender-cvs mailing list