[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14144] trunk/blender/source/blender/ blenkernel/intern/modifier.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Sun Mar 16 20:38:06 CET 2008
Revision: 14144
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14144
Author: blendix
Date: 2008-03-16 20:38:04 +0100 (Sun, 16 Mar 2008)
Log Message:
-----------
Fix for bug #8516: mesh deform modifier didn't work correct with
transformed cage objects.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/modifier.c
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2008-03-16 17:43:59 UTC (rev 14143)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2008-03-16 19:38:04 UTC (rev 14144)
@@ -6747,7 +6747,7 @@
float (*vertexCos)[3], int numVerts)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
- float imat[4][4], cagemat[4][4], icagemat[4][4], iobmat[3][3];
+ float imat[4][4], cagemat[4][4], iobmat[4][4], icagemat[3][3], cmat[4][4];
float weight, totweight, fac, co[3], *weights, (*dco)[3], (*bindcos)[3];
int a, b, totvert, totcagevert, defgrp_index;
DerivedMesh *tmpdm, *cagedm;
@@ -6773,8 +6773,9 @@
/* compute matrices to go in and out of cage object space */
Mat4Invert(imat, mmd->object->obmat);
Mat4MulMat4(cagemat, ob->obmat, imat);
- Mat4Invert(icagemat, cagemat);
- Mat3CpyMat4(iobmat, icagemat);
+ Mat4MulMat4(cmat, cagemat, mmd->bindmat);
+ Mat4Invert(iobmat, cmat);
+ Mat3CpyMat4(icagemat, iobmat);
/* bind weights if needed */
if(!mmd->bindcos)
@@ -6872,7 +6873,7 @@
if(totweight > 0.0f) {
VecMulf(co, fac/totweight);
- Mat3MulVecfl(iobmat, co);
+ Mat3MulVecfl(icagemat, co);
if(G.rt != 527)
VECADD(vertexCos[b], vertexCos[b], co)
else
More information about the Bf-blender-cvs
mailing list