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.
This commit adds a check that should prevent crashes of the kind that were occurring in the report description from happening.
However, I couldn't verify yet whether this really works, since it appears the bug has temporarily disappeared in recent svn. Just in case, I've committed this fix, and we can revert/improve if the bug returns.
The best workaround for problems with SplineIK applied to a chain of BBones so far is to disable 'Chain Offset'. Hopefully this workaround will soon become irrelevant.
Made the 'Offset Factor' setting use a separate variable from the 'Offset' setting in the DNA stuff. While we could get away with this sort of thing in the past, it turns out that with the Datablocks viewer these days, settings sharing an internal var but with different ranges/behaviour doesn't work well anymore, since later instances override earlier ones.
Reverting the part of an earlier commit to show the Evaluation time in the Path panel that made the Evaluation Time setting a factor. This setting should not be a factor, since it gets divided by 'Path Length' to normalise it to the 0-1 range needed. When this setting isn't animated, the evaluation time setting is automatically set to the current frame number, so that when divided by Path Length, child objects still follow the curve.
Spline IK now takes curve-object transforms into account when the 'Chain Offset' option is not enabled, since the intention of that feature is to allow a chain of bones following the shape of a curve to be placed anywhere in the scene.
* Fixed bug with Graph Editor that meant that after switching modes, driver F-Curves would often still be shown black until the curves were edited
* Added notifiers and missing flags for F-Curves and Actions
Thanks to a great doc from Bassam (slikdigit) on the different types of handles (which should probably become/be part of future 2.5 docs), I've revised the code again so that this works well again.
The doc:
http://docs.google.com/View?id=dvgkxj6_1d8cpfw79
- triangulating non planer quads is needed to resolve some artifacts however this also ends up triangulating most faces in - Suzzane subsurf level 4 for eg.
this check could be tuned for better performance but for now skipping it is useful for test renders.
Todo for Campbell:
- Make menu context sensitive
- Make menu automatically run the operator if there is only one option
Note: Saved configurations and keymaps with references to "Extrude and Move" operator needs to be updated to either call the menu or one of the new extrude macros.