Refactored Auto-Keyframing to make it easier to add more options. There are now three "states" for auto-keying: off, add/replace keys, replace keys.
Description of modes:
1) No auto-keying is done
2) Add new keyframes or replace existing ones if possible (old behaviour)
3) Only modify existing keys, but not insert new ones.
Internally, I've moved the auto-keying settings out of G.flag and U.uiflag and moved them into their own variables in Userdef, and provided some macros to access those easily. As a result, old auto-keying settings are currently lost.
Also, removed the manual calls to insertkey done in pose-relax. The reason auto-keying didn't work before was because the bones didn't have the BONE_TRANSFORM flag applied. Now, these are set temporarily.
Todo(s):
* Make icons for the TimeLine header menu (currently just a text menu)
* Add version-patches for old files
* Double-check code for all places that use auto-keying (i.e. PoseLib)
====================
- "From Dupli" option for orco and uv texture coordinates. For dupliverts,
duplifaces and dupli particles, this uses the orco and uv at the point
on the parent surface. Can for example be used for texturing feathers
and leafs. Note that uv only works for duplifaces and particles emitted
from faces, these are not defined at vertices.
- "Width Fade" option for strand render, to fade out along the width of the
strand. Committing this so it can be tested, might be changed or removed
even, if it doesn't give nice results.
* Peach Request - Added Ctrl-PageUp/Down to jump to next/previous keyframe (respectively), just like elsewhere in Blender.
* As a result, Action Channel rearranging has been remapped so that:
- Ctrl-Shift-PageUp/Down is move to top/bottom
- Shift-PageUp/Down is move up/down
* Added a hotkey ("accentgravekey", i.e. ~/`) to toggle whether all Action Channel levels are expanded or not. This affects all visible Action Channels.
* Added Ctrl-Numpad+ and Ctrl-Numpad- to expand and collapse all Action Channel levels by one level (as appropriate). This only affect selected Action Channels.
a glance to view is the "STU PID semi implicit euler"
most of the work to implement a semi implicit euler was done ..
now i am dealing with the tradeoffs between 'calculation time' which is quite expensive .. inverting a 0(n*n) sparse matrix /* once agian thanks to brecht for his work on making sparse matrices LU decomposition and evaluating inverses that easy*/ putting it into and cropping works pretty nice .. argh off topic again
...
while i spent a little time on reading recent papers i found :
1. control on springs needs to be split in pushing and pulling /* fabric pushes easy but pulls hard */
2. diagonals on 4-gons (in the current SB model) can be seen as shear .. thus need a contol to modify .. this commit wil add it
3. 2 nd order springs /*aka rigidity */ can focus on bending .. thus renaming 'em
i have no idea how i would provide backward compatiblity, but the spots i marked in code :)
Removed the version-patches to reset the rest-lengths of StretchTo constraints when loading old files. I can't remember why I added these in the first place, but they seem to cause problems from time to time...
Rename was changed to work on the last selected node. Also size of a couple of
character arrays was changed to avoid buffer overflows.
Custom name shows up now just fine in group header in case it is being edited
as it did not before.
Cessen Request - Added a tool which inserts keyframes on every frame between two selected keyframes. This is useful for adding overlapping motion (apparently).
Use Alt-O to run this tool. The name of this tool is also open to suggestions ;)
Note:
There is currently a bug with this. When there are 4 consecutive keyframes, it won't add keyframes between keyframes 2 and 3.
This commit makes it possible to add a custom name to a node. The feature can be
accessed either by using a menu or shortcut ctrl-r. It currently works only when
a single node is selected. Invoking the feature gives a popup menu in which a new
name can be entered. If the given name is not empty, it will be shown like
"(myCustomName) NodeName" in the node header.
This feature is particularly useful when documenting complex node setups.
I also fixed the size of blur node. It was too short before due to my previous
commit.
Thanks to David Millan Escriva for contribution!
make for example feathers. Also made dupliparts work within groups.
One issue still is that in particle editmode, the duplis can interfere
with brushes and selection, though tweaking the dupli object position
can alleviate the problem.
This commit makes it possible to use relative values when using a Blur node. There
is a new toggle in the node that can be used to enable the feature.
Thanks to David Millan Escriva for contribution!
This commit adds possibility to define black and white level of the
mapping curve of the RGB Curves node. This functionality is exactly
the same found in the Curves tool of the UV/Image Editor. It can be
used to extract wanted color ranges out of the input easily.
Thanks to Björn C. Schaefer for contribution!
This commit alters the behaviour of "Toggle Link" tool found in the node
editor so that it only makes link between selected sockets. Links cannot
be deleted by using the tool again as before. Instead deleting links can
be done by using the old method (drag with lmb).
The delete functionality may require further investigation to see if it
should be improved.
Now, when Previewing/Browsing poses with Ctrl-L, it is possible to type in part of a name to limit the poses which can get chosen to hone in on the poses you wish to apply more quickly.
* The search is case insensitive, and doesn't look for complete matches (it will 'match' if the whole search-string is found).
* Only basic text manipulation capabilities are available for editing the search string (i.e. backspace, del, home, end, move text-cursor forward ->, move text-cursor backwards <-).
* Pose browsing using the Scroll-Wheel and Page up/down can be used to browse through the matches
* View manipulation is only possible with MMB, as numpad keys are used for search-string input.
In the process, I've recoded the preview function to be more modular. It's now split up more, like the Transform core.
I hope this time I've fixed it once and for all. The cases which use to fail seem to work now, so I assume it's now fixed. In case it isn't, I'll leave the bug report open for a few days first.
* Tidied up coding style of code in editconstraint.c
- removed blank lines, made whitespace-use more consistent
* Shuffled code in editconstraint.c and BIF_editconstraint.h so that it was in a more orderly fashion
* Reduced code redundancy in test_constraints
- tests which can apply to general constraints (target existance, and clashes with the owner) are not copied out for each constraint that needs it
- ChildOf constraint now gets validated too (before it was missing such checks)
* Recoded the way PyConstraints build the menu for displaying scripts available for use. It now uses dynstr instead of guessing how much memory to allocate for each entry
* NKEY popup for renaming channels was not working correctly. A typo meant that it only showed when the mouse was in the timeline area, not when it was over the channel names.
* Added a few safety checks to copy/paste to hopefully prevent crashes. Also, when there's only one channel in the buffer, it now copies all the data from that to all selected channels.
Proxy protected bones can now get local (per-file) constraints added to them, which will be preserved after a file load. This is necessary for adding constraints to proxy-protected bones for special purposes while animating (i.e. adding CopyLocs to IK-hand controls to pick up an object).
These must be added after any constraints from the proxy, as proxy constraints may come and go without warning. As such, the UI forbids this from happening by removing the relevant button.
I've also made UI-changes to show which constraints come from the proxy (the buttons to move the constraint up/down and delete it, are replace with two icons - a the proxy 'ghost' icon and a lock). Also, trying to change any settings of proxy-protected constraint will show an error.
Notes:
* Object constraints are still not playing nice with proxies yet. They didn't before this commit either...
* Removed "snap" from the names of the entries in the "Auto-Snap" menu for the Action Editor. "No Snap" is still "No Snap" though.
* PoseLib is now referred to as "Pose Library" in the interface
* Tidied up whitespace in editaction.c