Commit Graph

3328 Commits

Author SHA1 Message Date
4ae515a4e5 Keying Sets: BuiltIn vs Absolute Tweaks
This commit clarifies the somewhat "murky" separation between "builtin" and "absolute" KeyingSets as a result of discussions with Cessen.

* "Builtin" Keying Sets are now just the Keying Sets which in the past have been known as PyKeyingSets or Relative KeyingSets. These are registered from Py Scripts at startup, and will use the context info to determine what data they should be keyframing. These are stored per Blender session, independent of files, since usually these will be coded specific to sets of rigs used at a studio.

* "Absolute" Keying Sets are the ones that you can create from the Scene buttons and/or KKEY or RMB over any property. They specify the exact set of properties which should always get keyframed together. These are stored in the scene. 

In relation to this, I've made it possible to now set one of the builtin Keying Set types as the active Keying Set. 
* For now, this can only be done via the box beside the insert/delete key operator buttons on the TimeLine header (now complete with an recycled icon - HINT TO ICON DESIGNERS, to make this a bit more obvious). Later on I'll commit an operator to set this via a hotkey.
* The "IKEY" menu will only show up when there is no active Keying Set. When there is one, keying will happen silently (with info notice at the top of the screen). Later on, I'll hook this menu up to a hotkey, so that that active Keying Set can be changed without inserting keyframes or clearing active Keying Set...
* By default, there isn't any default Keying Set enabled. IMO, this is probably a good default, though some might like to have LocRotScale instead.
* I'm not terribly impressed with the search menu for the items being SORTED (and of all things, alphabetically!) currently, since this does break muscle-memory with the menu (and jumbles up order of closely related vs not closely related).
* The Scene buttons for KeyingSets still need some changes to fully cope with users setting builtin KeyingSets as active sometimes. Controls which are useless or shouldn't be used when a builtin set is shown are being shown.

Builtin set registrations have been tweaked a bit:
* Renamed "bl_idname" to "bl_label" for consistency with rest of API. Note that this is the identifier used by Blender internally when searching for the KeyingSet, and is also what the user sees.
2010-03-23 11:59:34 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
fb9546746e Screw Modifier (old patch was called Lathe)
didnt commit this patch because curves are generally better to create a shape to lathe however now that curves can have modifiers applied to them I think its good to have this.

Added options to offset the lathe so it can work like the screw tool as well.

- optional object for axis which also controls the center point.
- screw offset so rather then just lathing this can work more like the screw tool.
- screw optionally using the object distance along the axis.
- iterations so the screw can be applied multiple times.

tested to work well with curves.
2010-03-22 00:22:52 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
391cc2d004 merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
618b459e8b F-Modifier Goodies (as requested by @ndy):
* Copy/Paste operators for F-Modifiers
Available in Graph and NLA Editors. Use the Copy/Paste buttons beside the 'Add Modifier' buttons.

Copy copies all the modifiers of the ACTIVE F-Curve or Strip depending on the editor.
Paste pastes modifiers from the buffer to all the selected F-Curves or Strips, adding the new modifiers to the ends of each list.

* 'Stepped Interpolation' F-Modifier
This modifier holds each interpolated value from the F-Curve for several frames without changing the timing. 

This allows to preview motions 'on-twos' for example without altering the timing, or having to go through setting heaps of keyframes. In this case, Andy wanted to use this for CG <-> StopMo.
2010-03-18 13:04:46 +00:00
35a5be71e7 Fix [#20908] Box Select On File/Append Selects Too Many Files 2010-03-18 04:09:59 +00:00
5c9c50e13b change the scene opengl sequence rendering to be a global option with rendering and scrubbing settings.
still need to do a do_versions for this to work right without changing settings.
(commit 27442 by Campbell from render25 branch)
2010-03-16 17:37:34 +00:00
735b444d74 Fix this error when building with collada: http://www.pasteall.org/11757 2010-03-16 16:15:30 +00:00
f1c049137e Fixing compiler errors for those people who compile those c++ modules... bleh! 2010-03-16 08:07:43 +00:00
ea4a987fd4 == Massive Keying Sets Recode ==
After a few days of wrong turns and learning the finer points of RNA-type-subclassing the hard way, this commit finally presents a refactored version of the Keying Sets system (now version 2) based on some requirements from Cessen.

For a more thorough discussion of this commit, see 
http://sites.google.com/site/aligorith/keyingsets_2.pdf?attredirects=0&d=1

------

The main highlight of this refactor is that relative Keying Sets have now been recoded so that Python callbacks are run to generate the Keying Set's list of paths everytime the Keying Set is used (to insert or delete keyframes), allowing complex heuristics to be used to determine whether a property gets keyframed based on the current context. These checks may include checking on selection status of related entities, or transform locks.

Built-In KeyingSets have also been recoded, and moved from C and out into Python. These are now coded as Relative Keying Sets, and can to some extent serve as basis for adding new relative Keying Sets. However, these have mostly been coded in a slightly 'modular' way which may be confusing for those not so familiar with Python in general. A usable template will be added soon for more general usage.

Keyframing settings (i.e. 'visual', 'needed') can now be specified on a per-path basis now, which is especially useful for Absolute Keying Sets, where control over this is often beneficial.

Most of the places where Auto-Keyframing is performed have been tidied up for consistency. I'm sure quite a few issues still exist there, but these I'll clean up over the next few days.
2010-03-16 06:18:49 +00:00
e381395522 Fix [#21288] Colour Ramp doesn't update output
Moved color ramp RNA to rna_color.c, was very texture-centric before.
2010-03-15 04:54:31 +00:00
4a8849b030 - Hhighlight active nurb in edit mode
- Replaced hardcoded nurbcol array with theme colors
- Send notification in duplicate curve operator (this operator could
  reset/change active nurb)
- Edge seam color added to the user preferences dialog
2010-03-12 16:43:04 +00:00
Ken Hughes
388e08af62 BMesh branch
------------
Correct problems with edgetag_context_set(), edgetag_shortest_path(),
minmax_tface(); parameters were missing or of incorrect type.

Joseph: please review these changes.
2010-03-11 19:14:35 +00:00
d6158a4019 brought back x-mirror editing, though it's currently buggy. also made tesselation face normals writable to disk. 2010-03-11 05:30:01 +00:00
c0b3ab6ceb filebrowser:
* move own thread handling for thumbnails to WM_jobs 
* cleanup of thumbnail creation code
* added function to kill the job, which actually allows thread to terminate gracefully

vc9 projectfiles:
* fixed some missing includes for release target!
2010-03-10 19:30:20 +00:00
d4756d395b remove for bad-level-call & some minor changes to make camera switching neater. 2010-03-09 07:41:04 +00:00
71003b9bcc merge with trunk at r27259 and commit of a patch by anthony jones to fix msvc (though further work may be needed because changes made by the merge 2010-03-09 04:32:40 +00:00
754b22bd51 option to use offscreen opengl drawing with the sequencer scene strips.
warning, uses bad level call, will need to resolve very very soon!
2010-03-08 21:33:51 +00:00
b356eb6a8b image re-project now uses offscreen render function and has input for render size.
unrelated changes that ended up being more trouble to commit separate...

- removed BLI_split_dirfile(), was nasty, occasionaly modifying the source string, it could create directories and used the $CWD in some cases. was only used in 2 places in filesel.c, if this gives problems can address without bringing back this function.
  renamed BLI_split_dirfile_basic --> BLI_split_dirfile

- view3d_operator_needs_opengl was being called for offscreen render when it wasnt needed.
2010-03-08 20:08:04 +00:00
d0e0f6dea3 move render operators into their own files, render_internal.c & render_opengl.c, rather then have them in the screen module.
also rename render operators SCREEN_OT_ --> RENDER_OT_
2010-03-08 16:36:53 +00:00
b1a05da291 re-project: operators for projecting from a view screenshot rather then a camera.
- new mode for projecting an image with the view matrix saved in the image id-properties rather then using the camera matrix.
 - operator to screenshot the view and create a new image with the view matrix stored in the image.

these will be used for better re-project integration and are not immediately very useful.
2010-03-06 19:46:21 +00:00
c846136cd0 Full Path for GL include, fixing compile for scons.
Note: /include doesnt have a scons script yet, so fixing it this way.
2010-03-06 13:43:47 +00:00
da3802f559 Info Header: Non-blocking Info Messages
Reports (i.e. 'info' or 'errors') are now shown in the info header in place of the scene statistics if the last executed operator had some, with this info disappearing again once another operator is run (to show scene statistics again). 

For example, this means that info such as the the number of verts merged, or whether a Keying Set successfully inserted keyframes, etc. is now shown again somewhere, and that this is done in a non-blocking manner.

The current implementation is still a bit crude (i.e. lacking fancy polish), but is at least barebones functional. The todos...
* When more than 1 report message is generated by the last operator, there is currently a display of the number of reports. In future, it would be nice to be able to add a button beside this or make the label clickable with appropriate text indicating this (commented out atm) to show popup menu of all the reports...

* There could probably be some kind of coloured backdrop behind the text. Currently using standard box, but that has padding problems, and lacks visual interest.
* Timer based fade out/disappear?
2010-03-02 11:48:40 +00:00
b6acf0bb48 python support for defining region drawing callbacks, while not directly related to operators, this means python can now make operators that draw in the 3D viewport interactively.
nicer then 2.4x space handelers because you can register draw handelers to draw pre/post 3d space or in pixel space.
2010-02-27 13:27:06 +00:00
57baa94631 fix for warnings, add back pose relax into the pose menu. 2010-02-25 15:10:27 +00:00
a8d364ce4a Move increment value into numinput structure.
Easier for transform to have different values per transform then (also different from gears values).

(Based on a bug reported by Jonathan Smith)
2010-02-22 23:25:34 +00:00
38ef2df8f7 2.5 Audio:
* Jack Transport support!
* Minor sequencer audio corrections.
2010-02-21 18:01:41 +00:00
aa67aa9ecc Split numinput from transform (reusable in other operator).
Use in marker move operator.
2010-02-20 20:29:09 +00:00
f09dc08523 Enabling AV-sync again. You can now choose between No sync, Frame Dropping or AV-sync. 2010-02-19 12:20:29 +00:00
c72ab0a39e topology based mirror, (from apricot branch)
- correct errors with non-mirrored meshes
- mirror weight paint on asymmetrical meshes
2010-02-17 19:50:42 +00:00
a6e1998222 Animation Editors - Texture Animation:
Texture animation is now shown in the animation editors. Texture stacks are shown for each Material/Lamp/World block that uses them.

There is currently still a bit of a bug with this which means that unless the owner of the texture stack is animated too, the animation data for the textures won't show up. This will get rectified soon though.
2010-02-17 10:21:07 +00:00
6753411adb Console:
* Added own theme support for the cursor, was depending on the line_error color before.
2010-02-15 02:39:40 +00:00
b673f7318c Added support for animated texture draw, GLSL textures.
Note, this is not like GE ffmpg, but Blender Image Texture
display for GLSL materials. Speed can be disappointing,
use smaller images for realtime edits.
2010-02-13 13:09:30 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
b482b8543e Bugfix #21051: Restored 'Playback FPS'
This commit restores the 'Playback FPS' option which showed an indicator of the frame rate of animation playback in the 3D-View.

The info for this is now stored in a temp struct in scene data, with the status info being updated by the "animation step" operator instead of relying on globals as the old code did. This seems a lot more stable than in 2.49, but the accuracy is still questionable.
2010-02-12 00:44:26 +00:00
d65101629d Added theme support for vertex normals display alongside face normals.
This makes having both enabled at the same time actually useful!

http://www.pasteall.org/pic/show.php?id=1265
2010-02-11 03:37:51 +00:00
f22104542b copy vgroups to selected objects as long as they have aligned arrays.
access in the vertex group panel menu.
2010-02-09 22:00:19 +00:00
59a508d00b Bugfix #20903: Concitency issues between point and click and Tab Key in the Graph Editor
- 'Toggle' operators for channel settings now now act more like the select-all type of "toggle" operator. The old behaviour has now been moved to "invert".

- Channel settings are now flushed (like for visibility and when clicking) for muting and locking when using the operators
2010-02-09 21:22:24 +00:00
3f529256eb More bugfixes for setting visibility of anim channels using VKEY:
* Fixed problem where selecting an individual F-Curve would not set the selection correctly. 
Group channels still needed a separate selection check before they get included in the filtered list. I had removed this in an earlier fixing commit today, but overlooked that expanded groups wouldn't get this check. Therefore, group channels would also be flushed on, turning all channels of group on.

* Removed the 'curvesonly' test from deciding whether the selection status + collapsed group fix, from the earlier commit, since this was making a few cases get overlooked (namely for setting visibility toggles, where selected F-Curves in closed and deselected groups still managed to get through)

* Added a debugging print API call for helping with debugging this sort of error in future. It just prints the types of channels being operated on, to easily see what's going on...
2010-02-09 11:59:02 +00:00
35996857b8 Adding a field for debug type-names to animation channel types to facilitate easier debugging on channel errors. 2010-02-09 09:23:29 +00:00
20fb4e3367 DopeSheet and Graph Editors: Select More/Less Operators
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-02-07 11:50:03 +00:00
152708df68 Pre Draw callback for 3D view. 2010-02-03 20:45:35 +00:00
87bbb2d827 WM Draw Methods now has a new option Automatic (default). This will
set the draw method to triple buffer or overlap depending on the
configuration. Ideally I could get all cases working well with triple
buffer but it's hard in practice. At the moment there are two cases
that use overlap instead:

* opensource ATI drives on linux
* windows software renderer

Also added a utility function to check GPU device/os/driver.
2010-01-31 23:45:51 +00:00
29377db3f1 [#19872] Mesh edit missing undo push for mode changing
copy the editmesh select mode back to the scene on undo.
2010-01-30 16:09:56 +00:00
e1fdf7fc58 View2D/TimeCode Drawing:
This commit introduces a few cleanups and tweaks to the way that timecodes (i.e. the timing indications used instead of frame numbers) get displayed.

1. Custom Spacing of TimeCodes/Gridlines
Made the minimum number of pixels between gridlines/timecode indications a user-preference, instead of being a hardcoded constant. This allows to set the spacing tighter/looser than the defaults, and is also used for the other changes.

2. Default timecode display style, (now named 'minimal') uses '+' as the delimeter for the sub-second frames. This hopefully makes it a bit clearer what those values represent, as opposed to the '!', which can sometimes look too much like a colon.

3. Added various timecode display styles as user-preference. - These include always displaying full SMPTE, to showing milliseconds instead of frams for sub-second times, and also an option to just show the times as seconds only.
- When changing the timecode style, the spacing setting is automatically modified so that the timecodes are spaced far apart enough so that they won't clash (under most circumstances). This automatic modification is only done if the spacing is too tight for the style being set.

4. Unified the code for generating timecode strings between the View2D scrollbar drawing and the current frame indicator drawing.
2010-01-30 04:43:36 +00:00
3d9988cde7 Fix #19473: Toggle Quad View options missing from UI. 2010-01-30 03:22:22 +00:00
cb499c9df4 * Partially converted constraint template to layout engine
* Removed old code
2010-01-28 23:41:34 +00:00
20fac2eca7 The Death Of Editmesh - Part 1
I've removed editmesh altogether (other then scanfill, which is
seperate code that happens to reuse the editmesh structures).
The compatibility layer I had written for old editmesh tools
was more trouble then it was worth, though it did help in the 
early stages of this project.

There's a fair amount of breakage, and there's bunches of tools
(mostly minor ones) I need to port over still.  Biggest ones are
join triangles and loop to region, and spin/screw.

This probably isn't really testable, I'll hopefully have more
work done on this soon, but might not be before next week.
2010-01-28 00:45:30 +00:00
0bb36e9ced Fixes to Color Balance node:
* The Lift/Gamma/Gain formula previously was incorrect, fixed this and 
removed conversions - now the RNA values are the same as what goes into 
the formula.
* Because of this, added the ability for the Value slider to map to a wider range 
than 0.0-1.0. The black/white gradient remains the same, in this case just 
indicating darker/brighter rather than absolute colour values. Also added ability 
for color wheels to be locked at full brightness (useful for this case, where the 
color value itself is dark).
* Added an alternate formula - offset/power/slope (asc-cdl). This fits the standard 
Color Decision List formula, here for compatibility with other systems, though 
default Lift/Gamma/Gain is easier to use and gives nicer results.
2010-01-27 00:22:29 +00:00