Page MenuHome

Fix T82156: Object with Copy Rotation Constraints translates when being parented
ClosedPublic

Authored by Sybren A. Stüvel (sybren) on Nov 2 2020, 4:07 PM.

Details

Summary

Test Builds:

The fix:
Avoid the evaluation of constraints when computing the parent-inverse matrix.

Constraints are meant to be evaluated last; object transforms are computed this order:

  1. parent->obmat (the parent object's world matrix)
  2. ob->parentinv (the object's parent-inverse matrix)
  3. Object's loc/rot/scale
  4. Object's constraint evaluation

When the constraints are used to compute the parent-inverse matrix, their effect is moved from step 4 to step 2 in this list, potentially rotating or scaling the object's local transform. This causes unwanted movement as reported in T82156.

This behaviour (erroneously taking the constraints into account) has been in Blender since the first commit, so historically I can only find "Initial revision" as context.

Diff Detail

Repository
rB Blender
Branch
temp-T82156-parenting-and-constraints
Build Status
Buildable 11049
Build 11049: arc lint + arc unit