Add 'Smoothing Groups' option for exporting polygon smoothing groups.
Generates 'bitflags' smoothgroups values, ensuring no faces from different
groups sharing a same boundary edge or vertex have the same bitflag value.
NOTE: This type of smoothgroups will run out of group values (aka bitflags) with
some specific topologies, e.g. a fan of over 31 flat faces sharing a same vertex
(like the sides of a cone). In such cases, once all available values have been used,
the remaining faces will get `0` (aka 'no group') value assigned.
Original issue https://projects.blender.org/blender/blender-addons/issues/104434
Pull Request: https://projects.blender.org/blender/blender/pulls/135646
The underlying issue was that the code was trying to directly assign a Python
dictionary to an add-on defined Group Property accessed via `[]` syntax, like
this:
```
to_bone['rigify_parameters'] = param_dict
```
That only works if 'rigify_parameters' does *not* already exist according to the
`[]` lookup, so this was failing whenever it already did.
This PR fixes that by simply deleting the property first when it already exists.
Co-authored-by: Ayoub ibn Muhammad <cl3m3c7@riseup.net>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/135233
Commit 8ff8fc4859 changed the context for the modes in Merge Nodes
and Change Nodes operators to Nodetree. The enum items were thus
extracted using this context, but the UI Menus were not updated to
reflect this change and a few items were no longer translated.
This commit fixes the issue by using the same translation context for
the menus' drawing.
Avoid non valid glTF file by avoiding exporting multiple slots with same target_id_type in the same animation for a single object:
- Make sure to create multiple animation when needed
- Use action.name for active slots (can have multiple slots when different target_id_type)
- Use action.name - slot.name_display for additional animations
The EXTENSIONS_OT_package_install_files instance had its _drop_variables
was temporarily set to True before being storing the extension values.
This value was never read so the assignment can be removed.