diff options
Diffstat (limited to 'source/gameengine/Converter/BL_ArmatureObject.cpp')
-rw-r--r-- | source/gameengine/Converter/BL_ArmatureObject.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp index 82f97fe9c18..2db6e079c31 100644 --- a/source/gameengine/Converter/BL_ArmatureObject.cpp +++ b/source/gameengine/Converter/BL_ArmatureObject.cpp @@ -68,7 +68,7 @@ void BL_ArmatureObject::ProcessReplica(BL_ArmatureObject *replica) BL_ArmatureObject::~BL_ArmatureObject() { if (m_mrdPose){ - clear_pose(m_mrdPose); +// clear_pose(m_mrdPose); MEM_freeN(m_mrdPose); } } @@ -76,11 +76,11 @@ BL_ArmatureObject::~BL_ArmatureObject() void BL_ArmatureObject::ApplyPose() { if (m_pose){ - apply_pose_armature(GetArmature(), m_pose, 1); +// apply_pose_armature(GetArmature(), m_pose, 1); if (!m_mrdPose) copy_pose (&m_mrdPose, m_pose, 0); else - get_pose_from_pose(&m_mrdPose, m_pose); + extract_pose_from_pose(m_mrdPose, m_pose); } } @@ -126,7 +126,7 @@ void BL_ArmatureObject::GetPose(bPose **pose) if (!*pose) copy_pose(pose, m_pose, 0); else - get_pose_from_pose(pose, m_pose); + extract_pose_from_pose(*pose, m_pose); } @@ -142,7 +142,7 @@ void BL_ArmatureObject::GetMRDPose(bPose **pose) if (!*pose) copy_pose(pose, m_mrdPose, 0); else - get_pose_from_pose(pose, m_mrdPose); + extract_pose_from_pose(*pose, m_mrdPose); } @@ -158,9 +158,12 @@ double BL_ArmatureObject::GetLastFrame() bool BL_ArmatureObject::GetBoneMatrix(Bone* bone, MT_Matrix4x4& matrix) const { - MT_assert(verify_boneptr((bArmature*) GetArmature(), bone) && "Bone is not part of this armature."); + // ton hack + bPoseChannel *pchan= get_pose_channel(m_pose, bone->name); + +// MT_assert(verify_boneptr((bArmature*) GetArmature(), bone) && "Bone is not part of this armature."); - matrix.setValue(&bone->posemat[0][0]); + matrix.setValue(&pchan->pose_mat[0][0]); return true; } |