Depsgraph: Fix crash on undo of new bone added
Pose is not brought up to date for until exit of edit mode, so can not use.
This commit is contained in:
@@ -688,7 +688,8 @@ void BKE_pose_bone_done(struct Depsgraph *depsgraph,
|
||||
invert_m4_m4(imat, pchan->bone->arm_mat);
|
||||
mul_m4_m4m4(pchan->chan_mat, pchan->pose_mat, imat);
|
||||
}
|
||||
if (DEG_is_active(depsgraph)) {
|
||||
bArmature *arm = (bArmature *)ob->data;
|
||||
if (DEG_is_active(depsgraph) && arm->edbo == NULL) {
|
||||
bPoseChannel *pchan_orig = pchan->orig_pchan;
|
||||
copy_m4_m4(pchan_orig->pose_mat, pchan->pose_mat);
|
||||
copy_m4_m4(pchan_orig->chan_mat, pchan->chan_mat);
|
||||
|
||||
@@ -548,9 +548,13 @@ void update_special_pointers(const Depsgraph *depsgraph,
|
||||
object_cow->runtime.mesh_orig = (Mesh *)object_cow->data;
|
||||
}
|
||||
if (object_cow->type == OB_ARMATURE) {
|
||||
BKE_pose_remap_bone_pointers((bArmature *)object_cow->data,
|
||||
object_cow->pose);
|
||||
update_pose_orig_pointers(object_orig->pose, object_cow->pose);
|
||||
const bArmature *armature_orig = (bArmature *)object_orig->data;
|
||||
bArmature *armature_cow = (bArmature *)object_cow->data;
|
||||
BKE_pose_remap_bone_pointers(armature_cow, object_cow->pose);
|
||||
if (armature_orig->edbo == NULL) {
|
||||
update_pose_orig_pointers(object_orig->pose,
|
||||
object_cow->pose);
|
||||
}
|
||||
}
|
||||
update_particle_system_orig_pointers(object_orig, object_cow);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user