[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