[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32362] trunk/blender/source/blender/ editors/transform/transform_snap.c: Fix for [#22250] Retopo projects to the wrong object when multiple objects are behind.

Janne Karhu jhkarh at gmail.com
Thu Oct 7 12:57:21 CEST 2010


Revision: 32362
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32362
Author:   jhk
Date:     2010-10-07 12:57:21 +0200 (Thu, 07 Oct 2010)

Log Message:
-----------
Fix for [#22250] Retopo projects to the wrong object when multiple objects are behind.
* Scaling of objects wasn't properly taken into account when projecting the verts.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_snap.c

Modified: trunk/blender/source/blender/editors/transform/transform_snap.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_snap.c	2010-10-07 10:04:07 UTC (rev 32361)
+++ trunk/blender/source/blender/editors/transform/transform_snap.c	2010-10-07 10:57:21 UTC (rev 32362)
@@ -1301,15 +1301,18 @@
 					BVHTreeRayHit hit;
 					BVHTreeFromMesh treeData;
 
+					/* local scale in normal direction */
+					float local_scale = len_v3(ray_normal_local);
+
 					bvhtree_from_mesh_faces(&treeData, dm, 0.0f, 4, 6);
 
 					hit.index = -1;
-					hit.dist = *depth;
+					hit.dist = *depth * (*depth == FLT_MAX ? 1.0f : local_scale);
 
 					if(treeData.tree && BLI_bvhtree_ray_cast(treeData.tree, ray_start_local, ray_normal_local, 0.0f, &hit, treeData.raycast_callback, &treeData) != -1)
 					{
-						if(hit.dist<=*depth) {
-							*depth= hit.dist;
+						if(hit.dist/local_scale <= *depth) {
+							*depth= hit.dist/local_scale;
 							copy_v3_v3(loc, hit.co);
 							copy_v3_v3(no, hit.no);
 





More information about the Bf-blender-cvs mailing list