Revision: 15770
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15770
Author:   jaguarandi
Date:     2008-07-26 01:52:16 +0200 (Sat, 26 Jul 2008)

Log Message:
-----------
Fixed simple deform strech/squash function

Modified Paths:
--------------
    
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/simple_deform.c
    branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h
    branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c

Modified: 
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/simple_deform.c
===================================================================
--- 
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/simple_deform.c   
    2008-07-25 22:58:22 UTC (rev 15769)
+++ 
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/simple_deform.c   
    2008-07-25 23:52:16 UTC (rev 15770)
@@ -68,25 +68,24 @@
        }
 }
 
-/* TODO strech and squash need review on function */
 static void simpleDeform_strech(const float factor, const float dcut[3], float 
*co)
 {
        float x = co[0], y = co[1], z = co[2];
        float scale;
 
-       scale = z*factor;
-       scale = scale*scale;
+       scale = (z*z*factor-factor + 1.0);
 
-       co[0] += x+x*scale;
-       co[1] += y+y*scale;
+       co[0] = x*scale;
+       co[1] = y*scale;
+       co[2] = z*(1.0+factor);
 
+
        if(dcut)
        {
                co[0] += dcut[0]*scale;
                co[1] += dcut[0]*scale;
                co[2] += dcut[2]; 
        }
-
 }
 
 static void simpleDeform_squash(const float factor, const float dcut[3], float 
*co)
@@ -237,15 +236,10 @@
                                simpleDeform_tapperXY(smd->factor[0], dcut, co);
                                break;
 
-                       case MOD_SIMPLEDEFORM_MODE_STRECH:
+                       case MOD_SIMPLEDEFORM_MODE_STRECH_SQUASH:
                                axis_limit(2, smd->factor+1, co, dcut);
                                simpleDeform_strech(smd->factor[0], dcut, co);
                                break;
-
-                       case MOD_SIMPLEDEFORM_MODE_SQUASH:
-                               axis_limit(2, smd->factor+1, co, dcut);
-                               simpleDeform_squash(smd->factor[0], dcut, co);
-                               break;
                }
 
                //linear interpolation

Modified: 
branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h   
2008-07-25 22:58:22 UTC (rev 15769)
+++ branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h   
2008-07-25 23:52:16 UTC (rev 15770)
@@ -531,11 +531,10 @@
 
 } SimpleDeformModifierData;
 
-#define MOD_SIMPLEDEFORM_MODE_TWIST            1
-#define MOD_SIMPLEDEFORM_MODE_BEND             2
-#define MOD_SIMPLEDEFORM_MODE_TAPER_X  3
-#define MOD_SIMPLEDEFORM_MODE_TAPER_XY 4
-#define MOD_SIMPLEDEFORM_MODE_STRECH   5
-#define MOD_SIMPLEDEFORM_MODE_SQUASH   6
+#define MOD_SIMPLEDEFORM_MODE_TWIST                    1
+#define MOD_SIMPLEDEFORM_MODE_BEND                     2
+#define MOD_SIMPLEDEFORM_MODE_TAPER_X          3
+#define MOD_SIMPLEDEFORM_MODE_TAPER_XY         4
+#define MOD_SIMPLEDEFORM_MODE_STRECH_SQUASH    5
 
 #endif

Modified: branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c   
2008-07-25 22:58:22 UTC (rev 15769)
+++ branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c   
2008-07-25 23:52:16 UTC (rev 15770)
@@ -982,12 +982,11 @@
        block= uiNewBlock(&curarea->uiblocks, 
"modifiers_select_simpledeform_typemenu", UI_EMBOSSP, UI_HELV, 
G.curscreen->mainwin);
        uiBlockSetButmFunc(block, do_modifiers_select_simpledeform_typemenu, 
ob_v);
 
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Twist",               0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TWIST, "");
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Bend",                0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_BEND, "");
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Tapper X",    0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TAPER_X, "");
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Tapper XY",   0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TAPER_XY, "");
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Strech",              0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_STRECH, "");
-       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Squash",              0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_SQUASH, "");
+       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Twist",                       
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TWIST, "");
+       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Bend",                        
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_BEND, "");
+       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Tapper X",            0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TAPER_X, "");
+       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Tapper XY",           0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_TAPER_XY, "");
+       uiDefBut(block, BUTM, B_MODIFIER_RECALC, "Strech Squash",       0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, MOD_SIMPLEDEFORM_MODE_STRECH_SQUASH, 
"");
        
        uiBlockSetDirection(block, UI_RIGHT);
        uiTextBoundsBlock(block, 50);


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

Reply via email to