Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/collada/ArmatureImporter.cpp
| Show First 20 Lines • Show All 108 Lines • ▼ Show 20 Lines | if (b->get_joint_inv_bind_matrix(joint_inv_bind_mat, node)) { | ||||
| /* get original world-space matrix */ | /* get original world-space matrix */ | ||||
| invert_m4_m4(mat, joint_inv_bind_mat); | invert_m4_m4(mat, joint_inv_bind_mat); | ||||
| copy_m4_m4(joint_bind_mat, mat); | copy_m4_m4(joint_bind_mat, mat); | ||||
| /* And make local to armature */ | /* And make local to armature */ | ||||
| Object *ob_arm = skin->BKE_armature_from_object(); | Object *ob_arm = skin->BKE_armature_from_object(); | ||||
| if (ob_arm) { | if (ob_arm) { | ||||
| float invmat[4][4]; | float invmat[4][4]; | ||||
| invert_m4_m4(invmat, ob_arm->obmat); | invert_m4_m4(invmat, ob_arm->object_to_world); | ||||
| mul_m4_m4m4(mat, invmat, mat); | mul_m4_m4m4(mat, invmat, mat); | ||||
| } | } | ||||
| bone_is_skinned = true; | bone_is_skinned = true; | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 577 Lines • ▼ Show 20 Lines | if (parentname) { | ||||
| bPoseChannel *parchan = BKE_pose_channel_find_name(ob_arm->pose, parentname); | bPoseChannel *parchan = BKE_pose_channel_find_name(ob_arm->pose, parentname); | ||||
| mul_m4_m4m4(pchan->pose_mat, parchan->pose_mat, mat); | mul_m4_m4m4(pchan->pose_mat, parchan->pose_mat, mat); | ||||
| } | } | ||||
| else { | else { | ||||
| copy_m4_m4(mat, obmat); | copy_m4_m4(mat, obmat); | ||||
| float invObmat[4][4]; | float invObmat[4][4]; | ||||
| invert_m4_m4(invObmat, ob_arm->obmat); | invert_m4_m4(invObmat, ob_arm->object_to_world); | ||||
| mul_m4_m4m4(pchan->pose_mat, invObmat, mat); | mul_m4_m4m4(pchan->pose_mat, invObmat, mat); | ||||
| } | } | ||||
| #if 0 | #if 0 | ||||
| float angle = 0.0f; | float angle = 0.0f; | ||||
| mat4_to_axis_angle(ax, &angle, mat); | mat4_to_axis_angle(ax, &angle, mat); | ||||
| pchan->bone->roll = angle; | pchan->bone->roll = angle; | ||||
| #endif | #endif | ||||
| ▲ Show 20 Lines • Show All 373 Lines • Show Last 20 Lines | |||||