Mesh writes a modified copy, which meant recalc_undo_accumulated was never
cleared on the actual datablock. Also clear mesh->runtime on write to avoid
detecting changes, since it's cleared on read anyway.
Differential Revision: https://developer.blender.org/D7274
Clear is_identical_future before adding a next undo step, to avoid wrong
values for cases where we undo and then add a step with different changes
than what was previously the next step.
Ref D7274
When using generative modifiers too many center dots were rendered in
the normal overlay. This patch only renders the normals of original
center dots.
Known issue: decoding the `norAndFlag` has issues on Intel GPU.
The loop normals were always drawn. We used to only draw the normals if
it was mapped to an original loop of the mesh. Due to recent changes we
can not find the correct loop and decide if we need to draw them.
Note still need to check the face dots normals. This is more complicated
as facedot normals needs to be encoded in a different way
This was caused by the removal of some `BONE_TRANSFORM_MIRROR` flag
handling in rBde530a95dc7b482dc22c933b9b8b2a98c79b5663. I simply
restored those lines that caused this issue.
This makes the code a bit simpler to follow, by replacing
`if (x) { all the code here }` with `if (!x) { continue; }` and un-indenting
the remaining code, and by returning early.
No functional changes.
The paint mask overlay showed the wires and edges of the final mesh.
This change will only draw wires and edges that are mapped to the
original mesh.
This change enables mapping data in regular Mesh extraction. This
can also be used for better drawing of the normal overlay.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7277
Selecting linked would only select a single arbitrary chain.
Now select linked follows all child-chains of the bone.
Also add support for following all links, similar to how this would work
if it were a mesh with connected edges instead of only child chains.
Leave this off by default to match pose mode.
This was crashing, when looking into a fix I noticed that it gave
hap-hazard results dissolving past forks in the parent/child hierarchy
arbitrarily following one chain.
This functionality is almost identical to "dissolve" which delimits
forks in the chain predictably.
So remove this in favor of dissolve (available from the delete menu).
Edges were hard to see in some cases in edit-mesh vertex/face modes.
Since 804e90b42d alpha is handled differently,
update edge alpha to visually match 2.82.
Required for collisions with moving rigid bodies. Otherwise the static optimization mode will be kept and the obstacles would be calculated only once at the beginning.
The Screw Modifier had a lower limit for the steps value, which not only
was inconsistent between render and viewport steps, but also was capped
to 2 in UI and also in the code internally.
This commit introduces a new mode for calculating the positions and
weights of the IK segments in the Pose Brush based on the Face Sets.
The first segment of the chain will always include all face sets inside
the brush radius and it will propagate until the boundary of the last
face sets added in the flood fill. Then consecutive connected face sets
are added to the chain until the chain length limit is reached or all
face sets of the mesh are already part of the chain.
This feature enables complete control over the pose brush origins in
case that is needed. Also, with this mode, the user can have a library
of base meshes with face sets already configured to get to the initial
pose as fast as possible.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7235
This makes more clear what this automasking operation does and helps to differenciate it from the future face sets boundary automasking.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7185