[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15770] branches/soc-2008-jaguarandi/ source/blender: Fixed simple deform strech/squash function

André Pinto andresusanopinto at gmail.com
Sat Jul 26 01:52:16 CEST 2008


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);





More information about the Bf-blender-cvs mailing list