This commit fixes several issues related to using the Action Editor with Shapekeys. I've known about most of them for a while, so now's the time to fix that.
1) When the shapekey anim data for an object comes from an Action (key's IPO block is linked to the "Shape" action-channel), the names of the individual shapekeys is now shown. They will only do so if the Action Editor is not pinned though.
2) Slider limits for the case described above should now be sane again
3) "Add New" option from the popup menu in the Action Editor header will now convert shapekey animation data from IPO to Action if the action editor is displaying Shapekey data at the time. Many users have often found the old way of having to toggle the "running man" in the IPO-editor header, too clumsy and confusing.
Now 'Set Inverse' works correctly for PoseChannels in all cases. Previously, it was still using a temporary hack that failed when 'parent' bone had any transforms.
Editing the value of the ParBone field in the Transform Properties panel was not stable. The problem seems to have been buffer-overflow type problems caused by maximum character limit that was set too high.
I've also added auto-complete functionality for this field while I was tinkering around there.
Previously when deleting a scene, no checks were made to see if
any render layer nodes in other scenes were referencing them,
leaving them pointing to bad memory. Now, this checks all other
scenes' nodetrees and sets pointers to the to-be-deleted scene to
NULL, which gets taken care of elsewhere.
Partial fix for bug #7013, adding multires removes all vertex color layers
* Added a warning when adding multires levels to a mesh with more than one vcol layer. The user can choose to allow multires to delete the non-active layer(s), or cancel.
Note that this is a temporary fix; a better solution will be to make multiple vcol layers work with multires.
Fixed bug reported here:
http://blenderartists.org/forum/showthread.php?t=102975
* Removed an opengl texture attribute change used while drawing the propset sculpt brush; was causing model shading to disappear on textured models.
This is the only thing that made software GL unuseable, and would even hang blender when using some debugging tools.
The lag was noticibel on some cheap graphics cards also.
There is a problem with blenders events that means the mouse movement events are sent while the mouse button release event isnt for some time. This could make resizing a border take a fairly long time... 4-10sec.
even though this is a workaround, only redrawing when the mouse is moved is logical.
* I've replaced the long lists of #defines in header_action.c with enums, which should make that easier to maintain/add new items as needed.
* Added a few comments also
Multiple selected bones are now able to be parented to the active bone in EditMode. Previously, only one selected bone could be parented to another at a time.
The Action Editor can now display timing in seconds too. By default, it still displays timing in frames, but it is possible to switch the time display to seconds.
The hotkey to toggle this is Ctrl T.
Notes:
- Many of the Action Editor's tools have yet to be made aware of this. Therefore, they will still work as though frames are used. Only Transform, Snap, and Mirror should really be affected. This will be fixed when I wake up.
- Nothing *should* be broken, but I might have missed something.
Made inserting new keyframes use a coarser threshold for determining when to replace existing keyframes with new ones. Now, it shouldn't create so many keyframes stacked on top of each other, but yet still keep some bizzare cases working.
- Removing evil InitTransModeFlags (I would always forget to update that when adding new stuff). It's properly done in the per transform init now.
- Add toggleable mode for Shear (with MMB) for horizontal or vertical shear. Toggle shear mode also changes the input mode from vertical to horizontal and vice versa (it's intuitiver that way). (This was suggested in a really old patch but never implemented because I disliked adding transform specific handling in the main event switch).
- Add custom event handlers per transform (currently only used for Shear)
- Add custom data pointer and freeing flag (only (a)bused by Shear).
NOTE to Levi Schooley: Some stuff in there might be useful for you.
After complaints from wavez, Snap Cursor to Selected for Bones in EditMode now results in the cursor being snapped to the midpoint of the selected joint(s) like it did before my no zero-length bones commit.
This problem was resulted from the handles on keyframes not being mirrored as well. I thought that the handle resetting function would solve that, but obviously it didn't.
If you look at the log, the last change to this file I was trying to fix
game engine bug #6667. In so doing I added a print usage if you do not
pass any arguments to the gameplayer.
Things should work better now.
Kent
I've finally come to the conclusion that the old code used to clean up IPO-curves was utterly unsafe/unstable. It used to have a lot of memory-related bugs early on, which I had resolved, but still I found a file where this broke quite badly (thanks Cessen).
Now the code should be saner, as it does away with that evil memory copying that seems to be at fault. It would be advisable to have this properly tested for a few days before considering it for inclusion in 2.45 (stable) branch.
Preview Range could get set with frame numbers less than 1. This caused problems with playback in a few cases, and also gave gibblish in the counter-cursor thing.
This fixes [#6996] Sequence Nesting and enables sequence nesting for the
first time :)
The old hack done by Ton prevented eternal loops by preventing Sequence
tracks being added to Sequence scenes.
We now disable "Do sequence" temporarily for the _current_ scene, which
has the same effect but leaves the possibility of sequence nesting
untouched.
Also fixes a warning in editseq (uninitialized variable).
This adds "[#6766] Transform Sequencer effect" by damiles.
* Configurable interpolation: no, linear, bicubic
* Makes it possible to specify coordinates in units of pixels or by percent
of the picture size
It makes the code a lot more clean, since new imbuf functions are used.
This patch also fixes
[#6829] Limit on VSE Transform Effect
bsystem_time was being called with an extra variable, which was useless. Most of the places that called it, were passing NULL for that variable anyway.
I've also cleaned up that function a bit, but the underlying problems with that part of the code still exist (EVIL GLOBALS that are exported for frame_to_float), for mblur and fields rendering features. That remains for another time.
In this commit, a new way to set the bone roll is introduced. It aligns the z-axis of the selected bone(s) to the 3D-Cursor, so that the cursor intersects with the YZ plane.
This makes it easier to align bone rolls to a target, for use in rigs where arms/legs are not horizontal/vertical. To use this, just press Ctrl N, and choose the "Align Z-Axis to 3D-Cursor" option.
Credits go to Robert Christian (wavez) for providing the method as a working BPy script, that demonstrated this in action.
* Now, when X-Mirror is turned on for the armature, the roll from bones being 'rolled' is also mirrored.
* Disabled transform-constraints for this mode, as it didn't really make sense.