Commit Graph

84 Commits

Author SHA1 Message Date
Ton Roosendaal
5a0896e1a3 2.5
Cleanup of scroller drawing in 2D windows.

Before:
http://download.blender.org/institute/rt11.jpg
After:
http://download.blender.org/institute/rt12.jpg

Will add 'zoom' widget circles later, as mockupped here:
http://www.reynish.com/files/blender25/fcurve_scrollbar.png

Also note the scale values are inside scroller; drawing it
on top conflicts with current frame item and markers.

Currently scroller disappear entirely when view is total.

For Joshua:
To make sliders behave nicely, the boundbox (v2d->tot) has to
be refreshed on each change. I've added it in graph drawing
now, but it could be notifier based I guess... not sure what
the correct anim api call would be. Can discuss tomorrow!

On todo:
Layout config hints so people can make scroller positions swap.
2009-07-02 18:12:46 +00:00
Guillermo S. Romero
333e231fa6 SVN maintenance. 2009-06-23 00:09:26 +00:00
Brecht Van Lommel
51fbc95e8c RNA
* Added icon to property and enum property items. The latter is
  responsible for the large number of files changed.
* For RNA functions, added PROP_RNAPTR flag to ask for a PointerRNA
  as argument instead of a C pointer, instead of doing it implicitly
  with the AnyType type.

* Material: properly wrap diffuse/specular param variables, and
  rename some things for consistency.
* MaterialTextureSlot: added "enabled" property (ma->septex).
* Image: make animated property editable.
* Image Editor: make some things editable, notifiers, respect state.
* Context: fix issue with screen not being set as ID.
2009-06-16 00:52:21 +00:00
Joshua Leung
4512be4b6c 2.5 - Fixes for animating enum values
Interpolation between keyframes for enum values (and booleans) can only be constant now. 

TODO:
A way to do this for modifiers is still needed.
2009-05-28 01:57:29 +00:00
Brecht Van Lommel
40ae17d2f6 UI
* Fix buttons jumping around when resizing and zoom. Part of this was
  adding a tiny a 0.001f offset in UI_view2d_view_ortho, otherwise the
  rounding is unpredictable (used to be 0.375f, but that was disabled).
* Fix various issues with zooming, panning panels.  V2D_LOCKOFS_X/Y is
  now taken into account in more places in the view2d code, to avoid
  zooming into the center or panning out of the view.
* Remove "Free" align mode in buttons window (it's not really useful).

* View3D/Graph/Image editors now use the same PanelType system as the
  buttons window, means some deprecated panel code could be removed.
* Some small visual tweaks for panels.
* View 2D Reset operator (Home key), to reset zoom and panning for panels.

* Added argument to set number buttons as sliders (slider=True for itemR).
* Ignore labels for button alignment (doesn't look right).
* Fix some use of context.main in py scripts, should get data from active
  object instead.
* Fix autotexspace -> auto_texspace in py script.
2009-05-19 17:13:33 +00:00
Joshua Leung
e67e7049f9 Graph Editor: Attempts at Improving Curve Drawing
* Trying a slightly different approach with curve drawing. Now curves aren't drawn darker down the list, as that approach proved to have massive contrast issues all around. However, it's not completely back to the old rainbow style, as the colours are still grouped in 3's and 4's, only that they now use hue offsets...

* Unselected curves are now drawn less opaque. However, selected curves still leave some brightness to be desired... 

* Bugfix - Deselecting keyframes in graph view now deselects the curves too.
2009-05-18 02:23:20 +00:00
Joshua Leung
69fca66a81 Graph Editor Bugfix: 'HomeKey' (View All) wasn't correctly calculating y-extents
It was only using the y-extents of the last F-Curve it encountered
2009-05-11 11:51:30 +00:00
Joshua Leung
9e5bd4bb98 2.5 - Warning fix in own code 2009-05-09 09:18:54 +00:00
Joshua Leung
029c27b0be 2.5 Bugfixes:
More work on getting these marker-dependent tools working. They should finally work now :)
2009-05-09 02:37:12 +00:00
Joshua Leung
4f0dc8abbf 2.5 - Restored Various Tools using Markers
* Added back a few Marker-API tools
* Restored column select tools using markers (some of these aren't working right yet though).
2009-05-08 12:51:36 +00:00
Joshua Leung
7e29e97c21 2.5 - Assorted animation code cleanups
* Replaced a few duplicated enums that were also defined for some RNA properties already with the RNA ones.

* Start of cleanup of markers code in preparation for getting the rest of the editing code involving markers working again
2009-05-08 10:50:32 +00:00
Joshua Leung
22c2827d2d Cycles F-Curve Modifier: 'Mirrored' Option
Using this cycling mode option, the keyframe range will be repeated in reverse order every second repeat. Thanks for the idea mfoxdogg :)
2009-05-04 10:04:46 +00:00
Joshua Leung
4cf8900c70 F-Curve Modifiers - Per-Modifier Muting:
It is now possible to mute individual modifiers so that they will not contribute to the final result.
2009-05-02 04:51:14 +00:00
Matt Ebb
4b025d6865 * Added a new F-Curve modifier type: Noise
Thanks Aligorith for making such an easy to use system!

http://mke3.net/blender/devel/2.5/fcurve_noise_modifier.mov
2009-05-02 04:20:36 +00:00
Ton Roosendaal
9b82d1474f 2.5
Summary of ain features:
- Themes and Styles are now editable.
- CTRL+U "Save user defaults" now goes to new .B25.blend, so you
  can use 2.4x and 2.5x next to each other. If B25 doesn't exist, it
  reads the regular .B.blend
- Press Tkey in 3d window for (unfinished) toolbar WIP. It now only
  shows the last operator, if appropriate.
  Nkey properties moved to the other side.

A lot of work was done on removing old themes for good and properly
getting it work with the 2.5 region system. Here's some notes;

- Buttons now all have a complete set of colors, based on button classifications
  (See outliner -> user prefs -> Interface
- Theme colors have been extended with basic colors for region types. 
  Currently colors are defined for Window, Header, List/Channels and
  for Button/Tool views. 
  The screen manager handles this btw, so a TH_BACK will always pick the
  right backdrop color.
- Menu backdrops are in in Button theme colors. Floating Panels will be in
  the per-space type Themes.
- Styles were added in RNA too, but only for the font settings now.
  Only Panel font, widget font and widget-label work now. The 'group label'
  will be for templates mostly.
  Style settings will be expanded with spacing defaults, label conventions, 
  etc.
- Label text colors are stored in per-space Theme too, to make sure they fit.
  Same goes for Panel title color.

Note that 'shadow' for fonts can conflict with text colors; shadow color is
currently stored in Style... shadow code needs a bit of work still.
2009-04-27 13:44:11 +00:00
Joshua Leung
387aad7275 A bit more F-Modifier wrapping... 2009-04-20 03:29:45 +00:00
Joshua Leung
d880257d16 Graph Editor: UI bugfixes
* Fixed a few alignment/size issues
* Number buttons work nicely again. Added temporary define for floating point limits here...
2009-04-19 12:26:31 +00:00
Joshua Leung
7cb8b3910d 2.5 Animation UI Tweaks:
* Added back backgrounds behind buttons for modifiers and driver targets
* 'Protect' toggle doesn't draw for F-Curves with no keyframes to prevent editing on anymore
* Inserting keyframes on objects using builtin keyingsets now use the right names
2009-04-17 02:13:35 +00:00
Joshua Leung
f47ab4f0ae 2.5:
* Added extra parameter to generic unique name finding function BLI_uniquename() for specifying the delimeter between non-unique parts of the name and digits.

* Driver target variables now get unique names by default.
2009-04-16 13:10:08 +00:00
Joshua Leung
eed6adbb48 Drivers: UI working + bugfixes
* The UI for adding and modifying drivers is now functional, and reflects the new way they work. It has also been tidied up a bit (from the previous incarnation), with RNA buttons starting to be used (currently limited to the 'Path' settings).
* Fixed errors in RNA wrapping for drivers
2009-04-16 12:38:44 +00:00
Joshua Leung
079304d199 Animato - Drivers with Multiple Targets:
Drivers now support multiple targets which act as 'variables'. The targets have a short 'name' (see later), and reference some property (in much the same way as F-Curves do, using RNA-Paths) which acts as the 'value'. 

These named variables can then be used in a Python Expression which relates them to each other for more fine-grained control over the result of the driver. By using only the names of these variables in the expressions, we are able to define expressions/relationships in a much more readable way, as data access is separated from data use. This makes the underlying relationships easier to understand.

By default, if no Python Expression is given, the variables are simply averaged together, so old files won't break. :)

For example, check the following diagram (thanks Cessen/Nathan V from Peach team):
http://download.blender.org/ftp/incoming/250_drivers_mockup_cessen.png


TODO List:
* Depsgraph building for new driver relationships doesn't work yet. This needs to be recoded again, but this new system makes this much easier, since the targets are clearly defined (i.e. no need to parse py expressions to get list of objects)
* Graph Editor interface for editing these needs to be rewritten
* Python function for evaluating these expressions is needed (Campbell?)
2009-04-16 07:37:06 +00:00
Ton Roosendaal
09015aa8ab 2.5
- Fun for testers: Added "Redo Operator" Panel in view3d 'nkey' region.
  It's going to be part of tools UI I know, but this will give good
  tests of what goes on with operators. I had to add small fixes in 
  Transform for it already. :)
  One important issue to note is that it lists every operator, also from
  non-3D-window ops. Needs checked or classified somehow.

- Fix: removed bad 2.4x hack from how pulldown menus were defined. Made
  widget code cleaner, and will show menus like SHIFT+A correct now.
2009-04-15 17:53:12 +00:00
Ton Roosendaal
5b3d7bfdf6 2.5
More cleanup!

- removed old UI font completely, including from uiBeginBlock
- emboss hints for uiBlock only have three types now;
  Regular, Pulldown, or "Nothing" (only icon/text)
- removed old font path from Userdef
- removed all old button theme hinting
- removed old "auto block" to merge buttons in groups
  (was only in use for radiosity buttons)

And went over all warnings. One hooray for make giving clean output :)
Well, we need uniform definitions for warnings, so people at least fix
them... here's the real bad bugs I found:

- in mesh code, a call to editmesh mixed *em and *me
- in armature, ED_util.h was not included, so no warnings for wrong call
  to ED_undo_push()
- The extern Py api .h was not included in the bpy_interface.c, showing
  a several calls using different args.

Further just added the missing includes, and removed unused vars.
2009-04-14 15:59:52 +00:00
Joshua Leung
3ef247eed9 FCurve Modifiers - "Limits" Modifier:
This new modifier clamps the values of the F-Curve to lie within specified bounds, much like Limit Location/Rotation/Scale constraints do. You can limit by time range(s) and/or value range(s).
2009-04-14 11:53:41 +00:00
Joshua Leung
4263c13c39 Animato Bugfixes:
* Copying objects with animation data now works correctly. Previously, actions were not getting copied correctly, leading to loss of data in some cases.
* Action and Graph editors now display the name of the Action concerned (for 'Action' folder channels), making it easier to tell which AnimData blocks are sharing the same actions
* Added some code to make relative KeyingSets (converted from absolute ones) work better.
2009-04-13 11:15:43 +00:00
Joshua Leung
f0fea32129 2.5 - Assorted tweaks in Graph Editor 2009-04-13 00:46:32 +00:00
Joshua Leung
1fec143198 Graph Editor: Bugfixes
* Fixed bug with curves sometimes not being displayed. Will investigate further tomorrow.
* Copy/Paste buttons in header now work. I've ported these over to use operator buttons
* Ctrl-Alt-Shift-RMB now selects all the keyframes in multiple F-Curves at once
2009-04-12 13:19:21 +00:00
Joshua Leung
2db495d4e3 Anim Editors: A few more hotkey tweaks 2009-04-12 08:21:22 +00:00
Joshua Leung
db3abe9456 Graph Editor:
* Column select (ALT-RMB) works again, and in conjunction with 'extend' (i.e. SHIFT) to add to selection instead of just replacing
* Select all keyframes in curve (CTRL-ALT-RMB) now works
2009-04-12 08:17:46 +00:00
Joshua Leung
dcb07e387d Action Editor: Selection tools cleanup
* 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-12 06:47:25 +00:00
Joshua Leung
fc02e980f4 Drivers: Errors + UI Tweaks
* Invalid drivers are now tagged accordingly and are not evaluated until they are manually refreshed using the 'Update Dependencies' button
* Drivers with errors have a error warning shown in their UI
* Rearranged the UI buttons a bit for drivers, adding support for a 'remove' driver button.
2009-04-11 06:48:39 +00:00
Joshua Leung
728767bad7 2.5 Drivers:
* Fixed bug with setting the active F-Curve
* UI for editing drivers now works
2009-04-11 00:29:21 +00:00
Ton Roosendaal
4e81404d7e 2.5
Grand cleanup: 
- removal of FTF and ftfont dir
- removal of text.c which wrapped it
- wrapped old text drawing code temporarily, need to decide how 'style'
  will behave per editor when you draw strings outside interface code.... 
  wouldn't be very useful to set fonts locally all over?
2009-04-10 16:30:28 +00:00
Joshua Leung
487561882d Animation Editors - Part 1 of Code Cleanups
* Fixed a few typos in the code
* Switched the meaning of the Ctrl and Alt modifiers when selecting keyframes. 
- Ctrl is now select all keyframes on one side of time cursor
- Alt is now select all keyframes at same time as a particular keyframe. 

TODO:
While testing these changes, I've found that this column-select is not working yet as the tolerances are too low. This will be rectified soon.
2009-04-10 03:34:20 +00:00
Joshua Leung
ad2c860baf Graph Editor: 'Ghost Curves' functionality from Apricot
This feature takes a 'snapshot' of the visible+selected F-Curves, and displays these in the background as 'ghosts curves' in the background. Such curves are drawn semi-transparent, slightly darker, and with dotted lines. 

To use, simply click the 'curve' button beside the Auto-Snapping selector. To clear, simply click that button again (with a different icon now). 

These 'ghost curves' are stored per Graph Editor instance, and are not saved to file (i.e. per session only). They are useful to be used as guides when refining the shape of existing curves.
2009-04-08 01:07:46 +00:00
Joshua Leung
51f6d6cbda Graph Editor - Ctrl-LMB (Click Insert Keyframes) Operator
Now it is possible to add more keyframes to the 'active' F-Curve by simply Ctrl-LMB clicking in the graph space. 

NOTE: more advanced polling callbacks are needed in the Graph Editor...
2009-04-06 12:07:33 +00:00
Brecht Van Lommel
4bb41c3dcd UI: various panels fixes.
* Fix sometimes non-working close/open button.
* Fix panels being a bit out of the view on startup.
* Fix too large totrct region for view2d.
* Fix wrong panel order when changing vertical <-> horizontal.
* Fix wrong panel positions after switching contexts.
* Fix an access of freed memory when collapsing panels.

* Free align mode works again.
* Animations work again.
2009-04-02 01:39:33 +00:00
Campbell Barton
931527e648 - use clear, set, add, enable, disable and toggle as a prefix in operator names
- use select as a suffix eg UV_OT_loop_select -> UV_OT_select_loop
- Each select all operator was using slightly different wording...
  select_all, deselect_all, de_select_all, select_de_select_all -> select_all_toggle

- selection -> select
- POSE_OT_select_connected -> POSE_OT_select_linked to match other operators
- NODE_OT_delete_selection -> NODE_OT_delete since its not used in other operators
- ANIM_OT_previewrange_define -> ANIM_OT_previewrange_set to match other operators
- NODE_OT_fit_all -> NODE_OT_view_all to match other operators
- View2D_OT_* -> VIEW2D_OT_* to match VIEW3D
- View2D_OT_view_downscroll -> VIEW2D_OT_scroll_down more logical
- removed MARKER_OT_mouseselect_extend and made extend a boolean property of MARKER_OT_mouseselect
- MARKER_OT_mouseselect -> MARKER_OT_select
- GROUP_OT_group_remove -> GROUP_OT_objects_remove more logical since its removing objects from groups
- MESH_OT_removedoublesflag -> MESH_OT_remove_doubles
- redundant words MESH_OT_split_mesh -> MESH_OT_split,  OBJECT_OT_object_delete -> OBJECT_OT_delete

renamed selection operator properties
 extend_select -> extend
 column_select -> column
 select_children_only -> children_only
 ... Since these are all in the context of selection operators there is no need for the extra 'select' in the property name.
 
Updated docs
http://www.graphicall.org/ftp/ideasman42/html/bpyoperator-module.html
2009-03-29 02:15:13 +00:00
Joshua Leung
c7d82ec96e F-Curve Modifiers: Experimental 'Additive' option for Generator Modifiers
This setting means that instead of blindly replacing the existing values, the generator modifier will instead apply its effects on top of any existing modifiers (and/or curve data). 
Thus, it is now possible to apply effects such sin/cos-based oscillations on top of keyframed motion.
2009-03-26 11:12:39 +00:00
Joshua Leung
7c86a10aba F-Curve Modifiers - Envelope: Bugfixes
* Envelope modifier now works correctly. Previously, the mapping was being done in the wrong order.
* Extra controls for modifiers now only draw when the F-Curve is the active one, so the view will be less cluttered in other cases.
2009-03-22 09:54:13 +00:00
Joshua Leung
b4209c5656 F-Curve Modifiers: Envelope Modifier
Got the basic envelope modifier code working, including primitive drawing of relevant helper info in the graph view. It doesn't work in a very intuitive way yet, so I will recode it soon.
2009-03-21 03:49:22 +00:00
Joshua Leung
43d4e3fa7e Graph Editor: F-Curves which can only take integral values are now drawn stair-stepped using the sampling code. 2009-03-18 10:58:18 +00:00
Joshua Leung
1ac0d54fea F-Curve Modifiers: Cycles Modifier
* Added GUI and fixed bugs in the Cycles Modifier. This replaces the old Cyclic Extrapolation settings, giving more fine-grained control over the results. You can now specify whether the keyframes are repeated before and/or after the range independently, also, the maximum number of cycles on either side can be controlled.

* TODO: it would be nice to have the last value held for cyclic+offset.

* Deleting modifiers now works
2009-03-17 06:37:50 +00:00
Joshua Leung
b68f5d7e96 F-Curve Modifier - Generator: Buttons for builtin-function mode (i.e. sin, cos, etc.) 2009-03-17 00:31:10 +00:00
Joshua Leung
133e8827b7 F-Curve Modifiers - Generator: Finishing off most of UI
* Finished code for Expanded Polynomial and Factorised Polynomial UI's.
* Started UI code for 'Builtin Function' mode. There are still 4 controls to add there to use something other than simple mapping
* Finished/fixed up verification code for these so that values get initialised ok.
2009-03-16 11:43:02 +00:00
Joshua Leung
ae0f349346 F-Curve Modifiers: Basic GUI for Generator Modifier working
* Currently, this only works for the 'Expanded polynomial' mode, but this will be expanded to include the other modes too. Now you can modify the values and interactively see the graph in the view change. 

* Disabled the backdrops (modifier 'panels') temporarily, as ROUNDBOX UI elements currently swallow all events, which is not good.

Note: the code here still uses the old-style UI definition code since the new stuff is still under heavy construction.
2009-03-16 11:11:44 +00:00
Joshua Leung
8522b08e05 F-Curve Modifiers: Generator Modifier Code
* Rewrote the Generator modifier to be more efficient and support more options
* A few UI tweaks for this, but the UI for this is still not yet functional though.
2009-03-16 01:12:37 +00:00
Joshua Leung
863a0e246f Fix for typo which broke compiling 2009-03-15 10:43:17 +00:00
Joshua Leung
329aa658c9 F-Curve Modifiers: Groundwork for getting these working
- Completed cleaning up the drawing code so that F-Curves with modifiers now get drawn to reflect this.
- Added a temporary operator to add modifiers (hotkey Ctrl-Shift-M)
2009-03-15 10:39:02 +00:00
Joshua Leung
6475e462fa Graph Editor: Frame numbers in horizontal scrollbar are no longer restricted to 1.0 frame intervals. 2009-03-09 07:00:40 +00:00