Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-05-27code cleanup: defines with braces - end with '(void)0' so callers must end ↵Campbell Barton
with ';' like normal function. ... without this some editors dont parse the source so well.
2012-05-13code cleanup: header cleanup and remove some duplicate defines.Campbell Barton
2012-02-17unify include guard defines, __$FILENAME__Campbell Barton
without the underscores these clogged up the namespace for autocompleation which was annoying.
2011-08-12Bye bye vile relics of extinct version control systems,Joshua Leung
Causing a flurry of refresh file prompts post-commit, Confusing local diffs and causing merge conflicts, Stating the obvious; redundant and useless... We shall not miss thou, blasted expand $keywords$
2011-06-30Animation Channels Filtering Refactor - Part 5Joshua Leung
Channels can now be used as "animation containers" to be filtered further to obtain a set of subsidiary channels (i.e. F-Curves associated with some summary channel). The main use of this is that object and scene summary channels can now be defined without defining the filtering logic in three different places - once for channel filtering, once for drawing keyframes in action editor, and once for editing these keyframes. An indirect consequence of this, is that the "Only selected channels" option in Timeline will now result in only the keyframes for a selected bones getting shown (when enabled), instead of all keyframes for the active object. This was requested by Lee during Durian, and is something which has only become possible as a result of this commit.
2011-02-21doxygen: editor entryNathan Letwory
2010-12-14graph editor & action keyframe paste options.Campbell Barton
- Offset, so you can paste at the same time of the original frames, at the current frame or relative to the current frame at time of copying. - Merge method, so the pasted keys can overwrite keys in their range or the entire curve. Currently there is no redo panel for these space types so the only way to access these options is with F6 redo popup.
2010-12-03fix for some pedantic warnings.Campbell Barton
2010-04-05Durian Feature Request for Graph Editor: Border Select (optionally) ↵Joshua Leung
considers handles Early when implementing the Graph Editor in 2.5, a key complaint that was levelled at the old 'IPO Editor' was that it was a constant annoyance that adjacent handles were getting selected in addition to the keyframes, when only the keyframes were intended. I solved this by making this default to only selecting keyframes and ignoring the handles, but this means that it isn't possible to batch move several handles at once. I've now improved this situation by adding an option to the border select operator (involved using Ctrl-B instead of B) which makes the handles get treated separately (as if they were separate verts, as in 2.4x). The default is still to only select keyframes, to have consistency with the DopeSheet... Also performed some more renaming work in the code...
2010-04-02Batch renaming some keyframe editing internals in preparation for more ↵Joshua Leung
generic keyframe editing API, allowing more niceties...
2010-03-21Fix syntax for ID keyword.Guillermo S. Romero
2010-02-12correct fsf addressCampbell Barton
2010-02-07DopeSheet and Graph Editors: Select More/Less OperatorsJoshua Leung
This commit introduces the Select More/Less Operators (Ctrl +/-) for keyframes. This works like the ones for curves, by only selecting/deselecting keyframes lying in the same F-Curve. Inter F-Curve selection is not done by this operator. That is the job for another one. This is especially useful for F-Curves set in the 0-1-0 pattern (i.e. 3 keyframes forming localised peaks), where the peaks can be selected by clicking on them individually, and immediately surrounding '0' values are selected too using "Select More".
2010-01-15Reverting changes made in r25940 with the NLA unmapping. Joshua Leung
The reverted code was just blindly restoring the old state of the keyframes; changes to selection state, value changes, handle type, etc. were overridden, and the cases where keyframes were deliberately retimed or otherwise were also ignored. I'm not sure what problems these changes were meant to be solving, but will reassess the situation when I get more info on this.
2010-01-13NLA: fix keyframes getting messed up when making strips longer. For drawingBrecht Van Lommel
and other operations the nla mapping would be applied to the curves, but not restored correctly. The unmap function was not the inverse of the map function, and it's not clear to me it's even possible to make it so due to repeat, so now the old coordinates are backed up in a list and then restored afterwards.
2009-12-24* register operators like other classesCampbell Barton
* operators now return sets (converted into flags) * can't remove bpy_operator_wrap.c since macro's still use the custom register funcs
2009-12-22Assorted F-Curve/Keyframe API stuff (for use with some Sequencer editing):Joshua Leung
* Added function for F-Curves to find the F-Curves in a given list which affect some named data, such as bones, nodes, or sequence strips. * Added a BezTriple offsetting callback to be used with the F-Curve+Keyframe loopers in use for many of the keyframe editing tools.
2009-10-22Animation Editors: Menu TweaksJoshua Leung
* Submenus displaying the options available for certain operators now will now show the hotkey for the operator on the menu entries. * Added an option for mirroring keyframes in the Graph Editor which makes use of the new cursor
2009-09-272.5 - Assorted Animation UI/Editing TweaksJoshua Leung
Main Feature: * It is now possible to choose which AnimData block is the 'active' one for editing, and/or select them too. AnimData blocks are generally the dark blue and lighter-blue expanders (i.e. Scene, Object, Camera, Lamp, Curve, Armature, etc.) * Objects are no longer selected/deselected when AKEY is used to toggle selection of channels. This was getting a bit annoying. * Following on from selection of AnimData blocks, it is now possible to select/make active an AnimData block in the animation editors, and change the active action for that block via the 'Animation Data' panel in NLA Editor's properties region. --> Be aware that user-counts are not totally handled correctly there yet, so some funky behaviour might be seen... --> It is possible to assign a new action, or to assign an existing one, allowing to switch between actions as in the past with Actions/IPO Editors... Other tweaks: * Some code tweaks towards making the 'Euler Filter' feature for Graph Editor working sometime soon * Added some backend code for snapping the values of keyframes to a single value. Still need to work out some UI for it though. * Shuffled the code for ACT_OT_new() around, and removed the poll() callback so that it worked in NLA too. * Fixed some more notifier bugs with deleting bones and a few other editmode operations for Armatures.
2009-09-042.5 - Keyframing Bugfixes + Code CleanupsJoshua Leung
* DopeSheet + Graph Editor - 'Sample Keyframes' option now tags newly created keyframes as being breakdowns. Also moved reduced the code duplication here by moving the core code for this to the animation module. * Keyframing (Standard/Auto) - Added proper 'replace' option Keyframes can now be rekeyed non-destructively when the INSERTKEY_REPLACE flag is provided to the keyframing API functions, since this option will make sure that only the values of the handles get altered. For the Auto-Keyframing 'Replace/Edit Keys' option, this means that it truly works as it describes now, since it will now only replace the values of the keyframes on the current frame, and won't create new keyframes in the process or destroy the tangents already created for those keys. For things like the sliders in animation editors, keyframes changing the value won't destroy existing tangents.
2009-09-042.5 - Keyframe Types for DopeSheetJoshua Leung
It is now possible to tag certain keyframes as being 'breakdowns' in the DopeSheet. Breakdown keyframes are drawn as slightly smaller blue diamonds. Simply select the relevant keyframes and use the RKEY hotkey (or from the menus, Key->Keyframe Type) to choose between tagging the keyframe as a 'proper' keyframe and a 'breakdown' keyframe. Notes: * Please note that this feature does not currently imply anything about breakdowns moving around keyframes or behaving any differently from any other type of keyframe * In future, if there is any such need, more keyframe types could be added, though this is not really likely at all
2009-05-082.5 - Restored Various Tools using MarkersJoshua Leung
* Added back a few Marker-API tools * Restored column select tools using markers (some of these aren't working right yet though).
2009-04-152.5 PoseLib - First steps to get PoseLib to work in 2.5Joshua Leung
* Cleaned up Keyframing API to get eliminate some of the problems faced during the original implementation of PoseLib, thus reducing code redundancy. * Added new Animato evaluation functions specifically for use by PoseLib. * Replaced parts of PoseLib code which relied on old animation system to the equivalent code for Animato. Notice the much cleaner + saner + compact code! Next step is to operatorfy the PoseLib tools (while maintaining possibility for an API to some things) :)
2009-04-12Action Editor: Selection tools cleanupJoshua Leung
* Cleaned up the code for selecting keyframes * Click-column-select (Alt-RMB) now works * Also, moved a function used in both Action/DopeSheet and Graph editors to the Animation module
2009-04-10Action Editor - Part 2 of Code CleanupsJoshua Leung
Nothing much to see here... there's still a few things to recode a bit nicer...
2009-02-24DopeSheet/Graph Editors: Restored Copy/Paste operatorsJoshua Leung
The channel-matching code when pasting still needs improvements to work really nicely...
2009-01-28Graph Editor: Restoring most toolsJoshua Leung
* Copy/Paste still needs to be cleaned up to be functional. Auto-set preview range + View All also need some work to become functional... * Smooth has been moved to Alt-O hotkey, as Shift-O was taken for Sample * Renamed a few operators for DopeSheet to be more in line with Graph Editor ones, and to be less obscure. * The 'join' and 'remove doubles' tools are not likely to be restored. I think that a few of the new tools cover this lack anyway. We can restore them if there is a real need. * Record tool needs a rethink to be genuinely useful, so it's not included here anymore. A note for anyone wanting to play with implementing this: store the sampled points using the new FPoint type in the FCurve instead of using BezTriples, as FPoints are used for storing sampled/baked data.
2009-01-28Graph Editor: Bringing back editing tools Joshua Leung
* Snap + Mirror Keyframes (Shift-S and Shift-M) * Set Handle/Interpolation type * Snap current frame to selected keyframes (Ctrl-Shift-S) from the DopeSheet * Toggle visibility of all handles (Ctrl H) from AnimSys2 branch also ported
2009-01-27Graph Editor: Joshua Leung
* Cleaned up code for borderselect with BKEY. There's still a bug here where y-values don't seem to be getting properly checked, so nothing seems to happen. * Set up some code for transforming keyframes. It currently uses the wrong code though (i.e. it uses the code for Action Editor which is 1D not 2D, and doesn't have some of the special checks needed). More work on this later.
2009-01-20Animato - More work on Action Editor Joshua Leung
* Added back Auto Preview-Range tool (i.e. set preview-range from keyframe extents) * Restored delete keyframe tool. For now, this doesn't delete empty F-Curves, even though its keyframe-api counterpart still does. I still need to figure out how to do this in the best way. * Fixed crashes when selecting keyframes in 'object' summary channels * Removed prototypes for a few unused/depreceated functions...
2009-01-20Animato - Restoring most of Action Editor Joshua Leung
* Streamlined the filtering code to remove a few redundant options, which required tweaking the code for most tools * F-Curves are simply displayed using their full paths right now. This should eventually be the UI-string stored in RNA, but right now there are still a few missing things. * There are a few tools which are not available yet which were available in 2.5 before Animato was added: - Copy/Paste - Rearrange channels Also, the DopeSheet is not totally functional (in terms of displaying animation data for sub-object data yet). That will be added tomorrow. * Added 'Action Group' pointer to F-Curves, as it will be handy for allowing Bone channels to still remain grouped as they were before with the Action Channels. However, reintroducing such a structure to the data-storage is not anticipated...
2009-01-172.5: Blender "Animato" - New Animation System Joshua Leung
Finally, here is the basic (functional) prototype of the new animation system which will allow for the infamous "everything is animatable", and which also addresses several of the more serious shortcomings of the old system. Unfortunately, this will break old animation files (especially right now, as I haven't written the version patching code yet), however, this is for the future. Highlights of the new system: * Scrapped IPO-Curves/IPO/(Action+Constraint-Channels)/Action system, and replaced it with F-Curve/Action. - F-Curves (animators from other packages will feel at home with this name) replace IPO-Curves. - The 'new' Actions, act as the containers for F-Curves, so that they can be reused. They are therefore more akin to the old 'IPO' blocks, except they do not have the blocktype restriction, so you can store materials/texture/geometry F-Curves in the same Action as Object transforms, etc. * F-Curves use RNA-paths for Data Access, hence allowing "every" (where sensible/editable that is) user-accessible setting from RNA to be animated. * Drivers are no longer mixed with Animation Data, so rigs will not be that easily broken and several dependency problems can be eliminated. (NOTE: drivers haven't been hooked up yet, but the code is in place) * F-Curve modifier system allows useful 'large-scale' manipulation of F-Curve values, including (I've only included implemented ones here): envelope deform (similar to lattices to allow broad-scale reshaping of curves), curve generator (polynomial or py-expression), cycles (replacing the old cyclic extrapolation modes, giving more control over this). (NOTE: currently this cannot be tested, as there's not access to them, but the code is all in place) * NLA system with 'tracks' (i.e. layers), and multiple strips per track. (NOTE: NLA system is not yet functional, as it's only partially coded still) There are more nice things that I will be preparing some nice docs for soon, but for now, check for more details: http://lists.blender.org/pipermail/bf-taskforce25/2009-January/000260.html So, what currently works: * I've implemented two basic operators for the 3D-view only to Insert and Delete Keyframes. These are tempolary ones only that will be replaced in due course with 'proper' code. * Object Loc/Rot/Scale can be keyframed. Also, the colour of the 'active' material (Note: this should really be for nth material instead, but that doesn't work yet in RNA) can also be keyframed into the same datablock. * Standard animation refresh (i.e. animation resulting from NLA and Action evaluation) is now done completely separate from drivers before anything else is done after a frame change. Drivers are handled after this in a separate pass, as dictated by depsgraph flags, etc. Notes: * Drivers haven't been hooked up yet * Only objects and data directly linked to objects can be animated. * Depsgraph will need further tweaks. Currently, I've only made sure that it will update some things in the most basic cases (i.e. frame change). * Animation Editors are currently broken (in terms of editing stuff). This will be my next target (priority to get Dopesheet working first, then F-Curve editor - i.e. old IPO Editor) * I've had to put in large chunks of XXX sandboxing for old animation system code all around the place. This will be cleaned up in due course, as some places need special review. In particular, the particles and sequencer code have far too many manual calls to calculate + flush animation info, which is really bad (this is a 'please explain yourselves' call to Physics coders!).
2009-01-032.5 - Action Editor: IPO Curve Protect works nowJoshua Leung
* Added the relevant filtering necessary for this to work, into the animation-channel filtering code. * Updated most of the keyframe-editing tools to respect this * Renamed keyframe-editing API loopers (added ANIM_ prefix) for consistency * Added function for mapping keyframes to/from NLA-mapping for Ipo-Curves in addition to the one for IPO blocks. As a result, renamed the latter for consistency.
2008-12-292.5 - Action Editor / Animation Stuff:Joshua Leung
* Brought back clean (OKEY), sample (Shift-OKEY), and delete (XKEY/DELKEY) tools for the Action Editor. Currently clean uses a predefined threshold (as a rna-prop, though it's still lacking the popup to set this when it is called) * Added new file for 'destructive' keyframe operations/tools. * Got keyframing.c compiling. Now, some of these tools need to be operatorised. Also, the API there might change when enough of the system is stable for RNA-IPO work to take place (so that it can be tested).
2008-12-282.5 - Action Editor: Joshua Leung
* Added set-extrapolation operator. For now, this uses the Shift-E hotkey. * Removed some unused code from keyframes_edit.c
2008-12-282.5 - Action Editor: Bringing back more operatorsJoshua Leung
* Added 'set handle-type' operator. Currently, all possible handle types are all set using a menu and HKEY. This will need to be reviewed at some point, but I think it should be easier for users to remember 1 hotkey for this, rather than 4 scattered around the place. * Added 'set interpolation' operator. This uses the Shift-T hotkey as before (for now). As in AnimSys2, this sets per-keyframe interpolation. * Remapped toggle frames/time-codes operator to Ctrl-T key. This may still change, but the TKEY needs to be free for transform tool here.
2008-12-272.5 - Action Editor Joshua Leung
* Started porting back keyframe editing tools for the Action Editor/Dopesheet. Currently, only Snap (Shift-S) and Mirror (Shift-M) are functional. * Added keyframe-editing API method for ensuring that all IPO-curves are left in a valid state after modifiying the values of their keyframes. * Added operator-register flags for most of the operators. Only mouse-select doesn't have it for now (as there's not much useful info stored, and no exec callback).
2008-12-262.5 - Action Editor: All Keyframe Selection Tools PortedJoshua Leung
User Notes (for using tools whose behaviour has changed): * Mouse Selection Tools: 1) Click on keyframe to modify its selection. Holding the 'Shift' modifier when doing so, will result in keyframe selection being toggled instead of replacing existing selections. 2) Click on either side of the current frame indicator while holding the 'Alt' modifier. This will select only all the keyframes on the relevant side of the current frame indicator. 3) Click on a keyframe while holding the 'Ctrl' modifier. This will select all the keyframes that fall on that frame. * Borderselect Tools 1) BKEY selects all the keyframes within the specified range (as per normal) 2) ALT-BKEY will select either all the keyframes in the frame-range specified or the channel range specified, depending on which axis of the select region was larger. This method is prejudiced towards frame-range selection. Code Notes: * Finished porting over all of the remaining keyframe selection tools, and recoded the ported ones to make them easier to use (after running into some technical limitations) * Simplified the way to check if 'animation context' is valid by moving a necessary check into that function. * Refactored internal keyframe-looping tools to reduce the amount of code needed per tool to edit keyframes, removing a lot of the unnecessary bulk. Now, the ipo/icu_keys_bezier_loop functions recieve a few more arguments (1st arg is pointer to generic customdata, and another defines a validation callback which makes it easier to reuse some of the select callbacks). * Added 'totrect' adjustment for number of channels being shown in Action Editor, so that scrolling will be limited to where there is data (and also so that scroller displays more relevant context info). For this to work, filtering channels now returns the number of channels extracted. This may come into use for other tools if there's such a need. * I still need to port over some code for markers, which is required for some of the tools which use them. For now, those tools do nothing. * Grease-Pencil editing mode in Action Editor is currently non-functional (code is commented out due to missing dependencies). This is currently pending the re-implementation of Grease Pencil in 2.5
2008-12-242.5 - Action Editor Select Tools Joshua Leung
Ported the following tools * borderselect * invert selection Note: while porting these, I noticed a few issues with some stuff that still needs to be cleaned up. Events handling in scrollers won't work yet, for the useful select all in frame(-range) or select all in channel(s). We should probably review ways to expose this more clearly in the UI too.
2008-12-232.5 Action Editor - Brought back Select All (AKEY)Joshua Leung
Now, selecting keyframes with mouse behaves more like before. Note: this still mostly uses old code, since other parts of code also call this. For later, it'd be nice to store as RNA prop, method of selecting.
2008-12-232.5 Action Editor - Big WIP Commit Joshua Leung
* Brought back backend for editing keyframes IPO/IPO-Curves. Did some refactoring work here that will still have to be verified when operators using them are added. * Animation channel filtering code now returns the number of channels filtered (for Action Editor to set totrect of channels - TODO still!) * View2D - made function to check if mouse is in View2D scrollers an API function * Renamed keyframe related files. The old names were too clumsy. * Started porting click-select operators for Action Editor. These don't work currently, as the events are being stolen by the markers. This needs to be fixed ASAP.