would convert from quat to matrix and back if the bone had any constraint,
but did not normalize the quat first as done in other places, giving a
sudden jump when starting transform on some bones with constraints. Two
changes:
* Normalize quaternion first.
* Only do this conversion on bones with limit rotation constraints,
instead of all bones with any constraint.
- Rename option and flag to something more sane
- Add property to manipulator operator and set true by default
Confirm on Release can now be forced true or false per operator, in which case it won't use the default value (the user preference).
Add hidden property to be able to force confirm on release (drag immediately is a silly name) on or off.
Streamline method for adding common properties to transform operators.
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing: UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
Proper fix for this. Moving special mouse input stuff to custom callbacks (this also makes the per transform main functions a bit cleaner).
It also fixes the operator property (value) for shear and warp.
--
Bugfix: When autokey is enabled, notifiers to refresh the animation editors *after* transforms finished for objects were missing.
While I understand the need to limit these to not doing this during transform, after transform, this lead to lag/inconsistent UI problems.
--
* Added 'Damped Track' Option to 'Make Track' Operator
* Improved the code of the 'Clear Track' operator to include other types of tracking constraint too
Only recalculate changes when absolutely necessary (mouse move triggers a soft recalc that will only happen before the next redraw other events trigger hard recalcs). The problem was that mouse moves are reported as lots of events (with small dx,dy) between each redraw which would trigger often heavy recalculations every time while only the last one was really important (the one before the redraw).
This makes snap project (retopo) much more manageable but induces a very small lag equal to one refresh cycle. Confirming transform does a hard refresh, so the final result is always consistent with mouse position.
* Auto-snapping can now be toggled on/off using Ctrl-Key again. Defaults to turning Nearest-Frame on if no auto-snapping is enabled, since this offers the best snapping behaviour in general.
* Graph Editor's 'Draw Time' option can now be taken into account for increment snapping/stepping
Patch by Jonathan Smith
When using numerical input, up and down arrow keys increment and decrement the value by the transform increment amount (grid for grab and so on).
Scaling behaviour relative to mouse movement was inverted. Made the this transform tool now use the standard input mechanism for scaling inputs so that the behaviour is now correct.
Martin: In my tests, the responsiveness of the scale tool is now not sensitive enough though. If you have some time, could you look into whether this can be made to work a bit freer?
Rotation operator now saves axis of rotation (when not using a constraint). Better for operator redo and tweak (would use a Z axis because of matrix init)
Also fix crash in Translation operator redo and tweak (rv3d is not always available).
Shift-MMB for user orientation constraint selection didn't work for global orientation (the matrix wasn't initialized properly).
Also, MMB can be used to cancel a constraint again.
Move gridview (the actual drawn grid size, including adaptation to zoom) to RegionView3D from View3D.
This solves the transform increment bug but not the Snap Menu bug (context is not set to the correct rv3d when executing operator from menu).
Also make the transform operator creation a bit more automagic (I always forget either operator registration or modal keymap registration, this is all automatic now).
Saving back orientation in operator didn't take into account that constraint orientation can be different than user selected orientation.
Also simplify the switching logic a little.
Autokeying for transform functions now gets context-info, allowing for bone paths to be recalculated.
However, the main purpose of this is to allow KeyingSets to eventually have poll functions.