diff options
Diffstat (limited to 'source/blender/blenkernel/intern/constraint.c')
-rw-r--r-- | source/blender/blenkernel/intern/constraint.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 679fe703b13..050e8d434ae 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -951,6 +951,10 @@ static void childof_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *tar /* If requested, compute the inverse matrix from the computed parent matrix. */ if (data->flag & CHILDOF_SET_INVERSE) { invert_m4_m4(data->invmat, parmat); + if (cob->pchan != NULL) { + mul_m4_series(data->invmat, data->invmat, cob->ob->obmat); + } + copy_m4_m4(inverse_matrix, data->invmat); data->flag &= ~CHILDOF_SET_INVERSE; @@ -4691,7 +4695,7 @@ static void followtrack_evaluate_using_3d_position_object(FollowTrackContext *co MovieTrackingTrack *track = context->track; MovieTrackingObject *tracking_object = context->tracking_object; - /* Matrix of the object which is being solved prior to this contraint. */ + /* Matrix of the object which is being solved prior to this constraint. */ float obmat[4][4]; copy_m4_m4(obmat, cob->matrix); @@ -4716,7 +4720,7 @@ static void followtrack_evaluate_using_3d_position_camera(FollowTrackContext *co Object *camera_object = context->camera_object; MovieTrackingTrack *track = context->track; - /* Matrix of the object which is being solved prior to this contraint. */ + /* Matrix of the object which is being solved prior to this constraint. */ float obmat[4][4]; copy_m4_m4(obmat, cob->matrix); |