diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-08 21:46:44 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-08 21:46:44 +0300 |
commit | 15eb4ebbe4b55223fff6537035ad6ff12f17201e (patch) | |
tree | 520132311de439a10dc19d25bcd4140f1c012757 /source/blender/blenkernel | |
parent | 85ee6302dddc150f3dfa250dbb1ac79427a84308 (diff) |
Mesh Deform Modifiers
=====================
Tweak for somewhat improved results with dynamic binding, and added
a rt value (527) for debugging mdef accuracy.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 2189fed3448..4672b5d6da8 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6404,9 +6404,14 @@ static void meshdeformModifier_do( for(a=0; a<totcagevert; a++) { /* get cage vertex in world space with binding transform */ VECCOPY(co, cagemvert[a].co); - Mat4MulVecfl(mmd->bindmat, co); - /* compute different with world space bind coord */ - VECSUB(dco[a], co, bindcos[a]); + + if(G.rt != 527) { + Mat4MulVecfl(mmd->bindmat, co); + /* compute difference with world space bind coord */ + VECSUB(dco[a], co, bindcos[a]); + } + else + VECCOPY(dco[a], co) } defgrp_index = -1; @@ -6474,7 +6479,10 @@ static void meshdeformModifier_do( if(totweight > 0.0f) { VecMulf(co, fac/totweight); Mat3MulVecfl(iobmat, co); - VECADD(vertexCos[b], vertexCos[b], co); + if(G.rt != 527) + VECADD(vertexCos[b], vertexCos[b], co) + else + VECCOPY(vertexCos[b], co) } } |