Revision: 33888
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33888
Author:   ton
Date:     2010-12-24 16:30:13 +0100 (Fri, 24 Dec 2010)

Log Message:
-----------
Bugfix #25371

Sculpt: brush type "Grab" with option "Frontface only" was flipping
back and forth when grabbing outside of original brush area.

Reason: it was calling a function that used deformed coordinates
for getting normal, clipped by brush area. Now it uses original
coordinates, so it always finds normal.

Nicholas can determine better if tag "cache->original" should be
set as default for this brush type, this far I don't dare to go :)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/sculpt_paint/sculpt.c

Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c  2010-12-24 
13:24:26 UTC (rev 33887)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c  2010-12-24 
15:30:13 UTC (rev 33888)
@@ -411,7 +411,6 @@
                else {
                        dot= dot_v3v3(fno, sculpt_normal);
                }
-
                return dot > 0 ? dot : 0;
        }
        else {
@@ -1331,9 +1330,14 @@
        int n;
        float len;
 
-       if (brush->normal_weight > 0 || brush->flag & BRUSH_FRONTFACE)
+       if (brush->normal_weight > 0 || brush->flag & BRUSH_FRONTFACE) {
+               int cache= 1;
+               /* grab brush requires to test on original data */
+               SWAP(int, ss->cache->original, cache);
                calc_sculpt_normal(sd, ss, an, nodes, totnode);
-
+               SWAP(int, ss->cache->original, cache);
+       }
+       
        copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
 
        len = len_v3(grab_delta);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to