- Sync Markers option works for local markers (or any other list of
markers in future) too now.
- Apply Pose to Restpose operator now displays a warning if an action
was found (warning about the action now being invalid)
- fix mistake with grease pencil UI (&& was intended but & used).
- use (void) rather then () across _all_ blenders code.
- a few minor edits, don't shadow stack variables in roll calculation & avoid running memset() for VBO vertex map.
- use NULL rather then 0 where possible (makes code & function calls more readable IMHO).
- set static variables and functions (exposed some unused vars/funcs).
- use func(void) rather then func() for definitions.
Simplified the code for Apply Visual Transform as Pose.
This makes it work for IK chains now, since there aren't any
recalculations of the pose involved now, which were contributing to
the pose getting incorrect as the applying process went on, since the
IK chain was getting calculated differently with each successive
change to the chain.
Patch #25901 by Tobias Oelgarte.
Bone transformations would be converted back and forth between different
representations when changing modes, which due to numerical errors could
lead to bone transformations slowly changing as you edit the armature.
Now the editmode head, tail and roll values are stored in bones and used
directly when entering edit mode. Head and tail were already there but
now we ensure they are the exact same value, roll was not yet there, so
we have a version patch for it.
The sub version was incremented to 1 for the version patch.
- use BLI_math functions for removing rotations from objects and pose channels.
- add unit_axis_angle() to avoid setting the Y axis inline anywhere rotation needs removing.
only case that doesn't fully work yet is the one where quats/axis-
angle are converted to eulers first.
- Fixed incorrect comment
- Removed obsolete "armature_clear" var from clear origin operator.
This was some ancient stuff from 2.4x code that ended up getting
ported across...
it easier to reset a rig to its default pose again
- Refactored clear pose operators to separate out the common parts,
and made sure that they all had descriptions
Having edit operations select the mirrored bones means you cant so easily continue editing on one side of the armature.
This is also inconsistent with other mirror editing operations in armature and mesh modes which don't adjust selection like this.
again)
- Graph Editor "Active Keyframe" panel now displays more descriptive
error messages. In particular, hopefully this helps to alert users of
the default generator modifier for Driver F-Curves
- The first F-Modifier added to a list is now set to be active one for
that list.
Armature edit mode: x-mirror: "switch bone direction" now flips the
mirror bone too. It leaves the mirrored bones selected too, so
you get good visual feedback things happened there.
- active is no longer assumed to be selected.
this fixes a simple bug - eg: Adding a new armature, entering pose mode and toggling selection failed.
- outliner editbone selection now works like object and pose mode.
- mouse selection sets the bone active even when the tip is selected.
- active, unselected bones draw as wire color with a 15% tint of the selected color.
This would have made bug #25003 very simple to find.
- Objects had their quats normalized when calculating their matrix, this is inconstant with pose bones and isn't useful for animation.
Also it wasn't normalizing the delta rotation so these would give bad rotations.
- Converting between rotation modes BKE_rotMode_change_values() assumed normal length quat. changing quat to euler rotation for eg could change the bone.
- Clear rotation and transform were not normalizing the quat when 4d loc was disabled on quat rotation, corrected and also made it so the quat scale is restored after conversion so animations curves dont jump.
There is 1 case in mat3_to_quat_is_ok() where quat_to_mat3 on an unnormalized quat is needed, for this I had to add an ugly static function quat_to_mat3_no_assert(), but overall its worthwhile IMHO to be able to find incorrect use of rotation conversion.
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.
This should help performance in python and animation editors, by making
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
also changed notify functions for new bone, hide/reveal, switch direction and parent.
these used ND_POSE or ND_DRAW, replaced with ND_BONE_SELECT since this changes editmode bone hierarchy/selection.
- pep8 script was giving an error on non utf8 scons source files.
- use PyList_SET_ITEM macro when list type is ensured.
- all mathutils types use subtypes to create new types when available.
- use defines MAT3_UNITY, MAT4_UNITY to initialize unit matrices.
from Josh Wedlake (joshwedlake), who provided a reference script used to apply changes in ED_rollBoneToVector().
- Obvious bug fixed where Z-Up didnt work right.
- More align axis options to Recalculate Roll operator: X/Y/Z/View Axis & Negate.
- Axis Only option, ignore the axis direction, use shortest rotation to align bones.
ED_rollBoneToVector() changes:
- would give bad roll when the axis wasn't normalized or perpendicular to the bone.
some callers accounted for this but not all.
- option to align to the axis but not the direction.
Also use const char in many other parts of blenders code.
Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
- object updates were not being flushed, so children weren't updating.
- apply the matrix relative to the parent, added this as an option to object_apply_mat4() which allows assigning the worldspace matrix in python without worrying about the parent.
- use sizeof() in more places.
- fixed some off by 1 bugs copying strings. setting curve font family for instance was 1 char too short.
- replace strncpy and strcpy with BLI_strncpy
Added extend option to lasso.
also...
- selecting bones wasn't checking their layer of if they were hidden in a number of places.
- fixed memory leak.
small unrealed changes
- added PBONE_VISIBLE macro
- renamed functions used for paint selectoin from *_tface to paintface_*. sine they no longer have anything todo with tface's.
- removed scanfill include from BLI_blenlib.h, this is only used in very few places and quite specific.
Noticed lasso select is broken for metaballs and face mask mode but this has been the case for a while, will look into it next.
- fixed this error 7 different functions (deform groups, uv layers & similar).
- support for numbers over 999.
- renamed splitIDname() to BLI_split_name_num(), moved to BLI_path_utils
The error for heat weighting was only being printed in the console, while the problem remains at least a warning is now given that there was a problem calculating the heat weight.
also fixed a memory leak from the mesh octree not being freed after assigning vertex groups. (ModNode error)