while it is possible to permanently flip the colors using the 'X' button, this makes it consistent with Texture Paint.
fixes T56994
Reviewers: campbellbarton, brecht
Reviewed By: brecht
Subscribers: JulienKaspar
Tags: #sculpting_and_painting
Maniphest Tasks: T56994
Differential Revision: https://developer.blender.org/D3753
It now works like 2.7x. That said this operator is kind of incompatible with
x-mirror (the way it is implemented anyways). But if people were happy with
this in 2.7x they will be multi-object happier.
That said, do turn off x-mirror before using this or select all bones, or just
stop using this operator altogether ;)
Jokes aside, the operator can also be fixed. It shouldn't be hard.
Also removed the insane insanity check. This would fail in the
poll function. No point in that level of paranoia.
And return OPERATOR_FINISHED regardless. Since this has a parameter
(though not used) you may get want to tweak REDO (in the future).
There were two issues here:
* cutsom_shape_transform was not properly tagged as not-owned pointer.
* custom_shape_transform and bbone_start/_end could be set to a pchan from
another data-block (not from UI, but RNA access code itself allowed it).
Those two issues were specificaly breaking complex rigs in static
override case.
EDIT: since yesterday, bbone_start/_end are mere accessors to edit_bone
data in RNA, so most of fix related to those was ditched (they still needed
to be 'deactivated' from RNA diffing with PROPOVERRIDE_NO_COMPARISON).
Both original handle types are based on location, and Absolute uses it
in a weird way: the Start handle uses the head, while End uses the tail.
This makes controlling the shape of the B-Bone via control bone rotation
really non-intuitive, especially if trying to add a single control for
the tangent in the middle of a B-Bone chain.
To remedy this, add a new custom handle type that uses the orientation
of the control bone, while completely ignoring location. It is even
possible to control both ends of one B-Bone with the same handle bone,
resulting in an S shape.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D3769
* Return OPERATOR_FINISHED only if at least one object succeeded.
* Have a per object fork value, otherwise an object may influence the next.
(which is why we should use `const foo = ...; foo_iter = foo;`)
The patch itself was fine (save for sending notifiers for objects instead of ob).
But I couldn't apply it, so I re-did from scratch.
Based on D3394 by @codemanx
Specifically, it should always use the position of the custom handle
bone head, even when affecting the handle at the tail of the main bone,
and shouldn't apply the special handling for joining two B-Bones.
This handle type was unusably broken before a bug fix included in
recent changes, so it should be safe to break backward compatibility.