diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-09-17 05:29:54 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-09-17 05:29:54 +0400 |
commit | 9064ed8d6aa934dedc4b344e328566a8549371f6 (patch) | |
tree | 81618923ec82eba64aa5caa6af6ffeb6231b996a /source/gameengine/Converter/BL_ShapeDeformer.cpp | |
parent | 9b7d40dbae1be5aa18894ffbc8f97a4a8c4c6fdd (diff) |
Fix for bug #4192: game engine armatures that are dynamically added
but don't have an action got the pose of already added armatures, even
though they're not related. This also fixes an issue where the armature
in Blender would end up in the pose from the game after ESC, removes
unneeded copies made during armature evaluation, and also solves the
constraint copying hack.
Diffstat (limited to 'source/gameengine/Converter/BL_ShapeDeformer.cpp')
-rw-r--r-- | source/gameengine/Converter/BL_ShapeDeformer.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.cpp b/source/gameengine/Converter/BL_ShapeDeformer.cpp index 236cd1a6667..dfd33e45fef 100644 --- a/source/gameengine/Converter/BL_ShapeDeformer.cpp +++ b/source/gameengine/Converter/BL_ShapeDeformer.cpp @@ -109,6 +109,7 @@ bool BL_ShapeDeformer::ExecuteShapeDrivers(void) vector<IpoCurve*>::iterator it; void *poin; int type; + // the shape drivers use the bone matrix as input. Must // update the matrix now m_armobj->ApplyPose(); @@ -121,7 +122,10 @@ bool BL_ShapeDeformer::ExecuteShapeDrivers(void) if (poin) write_ipo_poin(poin, type, icu->curval); } + ForceUpdate(); + m_armobj->RestorePose(); + return true; } return false; |