@angavrilov Great work!
Eh, I just extended the fix to crazyspace (sculpting) and constraints, the main fix is by @himisa.
Iterate over items()
to get both key and value.
What if the default isn't equal to the current value? This code doesn't preserve the value anywhere.
Rather than doing '{foo}'
, use {repr(foo)}
. Manual quoting could be barely tolerated for property names, but for the description it is simply unacceptable.
I rebased the branch on main.
Also, here are some per-vertex performance calculations, based on counting purely floating point operations and assuming division is about 3 times slower than…
smat
== mat_accum
, it was using the pointer as an implicit boolean parameter. Now it is an explicit bool flag.
Reverted since this is unrelated to the main problem.
Some python API addition ideas:
bone.collections.clear()
to remove the bone from all collections.bone.collections.set([...])
to replace the collection list, mainly so you can do…
I added a follow up PR #111759 that extends this to constraints and crazyspace (computing the full scale matrix when necessary).