Revision: 23980
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23980
Author:   theeth
Date:     2009-10-19 20:49:04 +0200 (Mon, 19 Oct 2009)

Log Message:
-----------
Some cleanup for particle edit snap.

Update comment to point at the root of the problem.

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     
2009-10-19 18:44:09 UTC (rev 23979)
+++ trunk/blender/source/blender/editors/transform/transform_snap.c     
2009-10-19 18:49:04 UTC (rev 23980)
@@ -344,6 +344,7 @@
 {
        ToolSettings *ts = t->settings;
        Object *obedit = t->obedit;
+       Scene *scene = t->scene;
        int snapping = 0;
        short snap_mode = t->settings->snap_target;
        
@@ -407,6 +408,15 @@
                                t->tsnap.mode = SNAP_ALL;
                        }
                }
+               /* Particles edit mode*/
+               else if (t->tsnap.applySnap != NULL && // A snapping function 
actually exist
+                       (snapping) && // Only if the snap flag is on
+                       (obedit == NULL && BASACT->object && 
BASACT->object->mode & OB_MODE_PARTICLE_EDIT ))
+               {
+                       t->tsnap.status |= SNAP_ON;
+                       t->tsnap.modePoint = SNAP_GEO;
+                       t->tsnap.mode = SNAP_ALL;
+               }
                /* Object mode */
                else if (t->tsnap.applySnap != NULL && // A snapping function 
actually exist
                        (snapping) && // Only if the snap flag is on
@@ -1457,13 +1467,14 @@
                retval |= snapObject(scene, ar, ob, 1, ob->obmat, ray_start, 
ray_normal, mval, loc, no, dist, &depth);
        }
 
-       /* This isn't so great, particles only need to snap with the mesh object
-        * that emits them, but this doesnt fit into a current snap mode
+       /* Need an exception for particle edit because the base is flagged with 
BA_HAS_RECALC_DATA
+        * which makes the loop skip it, even the derived mesh will never change
+        *
+        * To solve that problem, we do it first as an exception. 
         * */
        if(BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT)
        {
                Object *ob = BASACT->object;
-
                retval |= snapObject(scene, ar, ob, 0, ob->obmat, ray_start, 
ray_normal, mval, loc, no, dist, &depth);
        }
        


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to