Commit Graph

551 Commits

Author SHA1 Message Date
a1d0913afe Merged changes in the trunk up to revision 28536. 2010-05-02 23:10:22 +00:00
87072f1585 Removed unused code from yesterday 2010-04-29 23:24:31 +00:00
b008f04450 Rewrite of Logic editor UI to use layout engine
This commit puts the ground work in place, swapping out the crusty old Logic Editor
UI code for the new RNA-based layout engine. It's disabled with ifdefs at the moment
because it's incomplete, but Dalai can now do the grunt work to fill it all out and get it running.

Also includes a bug fix to LINK buttons, and two new logic operators to add and delete sensors.

Dalai, just switch the #if 0 and #if 1 in logic_window.c:3412 and 3469
2010-04-29 07:01:48 +00:00
2d4d820b97 3dview --> view3d, patch by Jonathan Smith with small corrections and changes. 2010-04-28 07:25:39 +00:00
a92b8b7ff6 == Sequencer ==
This adds MULTICAM-editing support for blender. (Well, the beginning of.)

There is now a new effect track, named MULTICAM, which just selects
one of the lower tracks.

Doesn't sound that exciting, but if you combine this with A/B-Trim (moving
split points of two directly connected tracks around, while magically
resizing both strips, something to be added), you just do:

* add several tracks for your camera angles
* (optionally) sync those tracks
* add one multicam track on top

Use that multicam-track to edit your movie. (Either using fcurves on the
multicam source selector or using knife-tool and A/B-Trim.)

Compare that to:

* add several tracks
* add cross fades between them
* do some python scripting to add several fcurves to make that beast
  somewhat work.
* cry out loud, using it, if you have to move cut points around

Alternatively, even harder:

* just edit the old way and put strip after strip

You might think, that this isn't really helpfull for animators, but
consider using scene-strips (in OpenGL-mode) for input, that are set for
different camera angles and can now be intercut a lot more easily...

Also: small fix on the way: the speed effect can now be used in cascade.
(Don't know, if anyone used it that way, but now it works.)
2010-04-25 12:53:39 +00:00
dfe2f8dc03 Merged changes in the trunk up to revision 28247. 2010-04-18 02:03:19 +00:00
bfe248b3d6 Patch [#21750] Add luma waveform and vectorscope to image view
by Xavier Thomas

This adds the waveform monitor and vectorscope to the image editor 'scopes' 
region, bringing it inline (plus a bit more) with sequence editor functionality,
and a big step closer to the end goal of unifying the display code for image/
comp/sequence editor. It's non-intrusive, using the same code paths as 
the histogram.

There's still room for more tweaks - I modified the original patch, changing 
the openGL immediate mode drawing of the waveform display to vertex arrays for 
speed optimisation. Xavier can look at doing this for the vectorscope now too.

Thanks very much Xavier!
2010-04-06 02:05:54 +00:00
f9e2f6acd7 Merged changes in the trunk up to revision 27992. 2010-04-04 19:50:22 +00:00
c5871b8750 Fluid physics for particles by Raul Fernandez Hernandez (Farsthary) and Stephen Swhitehorn:
This patch add SPH (Smoothed Particle Hydrodynamics)fluid dynamics to the
blender particle system. SPH is an boundless Lagrangian interpolation
technique to solve the fluid motion equations.
 
From liquids to sand, goo and gases could be simulated using the particle
system.
 
It features internal viscosity, a double density relaxation that accounts
for surface tension effects, static internal springs for plastic fluids,
and buoyancy for gases.

---------------------------------------

This is a commit of the core fluid physics. Raul will work on proper
documentation soon and more features such as surface extraction from
the particle point cloud and increasing stability by sub-frame calculations
later.
2010-04-04 12:29:06 +00:00
048f357f41 Merged changes in the trunk up to revision 27752. 2010-03-25 21:40:08 +00:00
5bc2d53507 fix for parsing python args to rna functions, was using allocated size as argument count.
(commit 27670 by Campbell from render25 branch)
2010-03-23 15:04:06 +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
29adfa7d64 Merged changes in the trunk up to revision 27647. 2010-03-21 19:55:51 +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
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
8521442257 Merged changes in the trunk up to revision 27420. 2010-03-11 20:04:25 +00:00
969b4673c7 Python/RNA: added collection.move(from, to) for python defined
collection properties.
2010-03-10 20:54:14 +00:00
b21a994076 Merged changes in the trunk up to revision 27178. 2010-02-28 03:44:15 +00:00
10dbf6faee rename extension to addon after discussion with meta-androcto & mindrones 2010-02-26 14:28:29 +00:00
0b33be5a7b select parent/child in object mode with [] keys, like pose mode.
also needed to extend the RNA api to allow C to set enums without meaningful values.
2010-02-25 15:41:46 +00:00
78bb45931c scene.render_data -> scene.render
bpy.types.SceneRenderData -> bpy.types.RenderSettings

better do these changes before there are too many scripts out.
2010-02-23 12:48:35 +00:00
ca5e7113d3 allow python api to set values of library liked data (still checks editable flag)
+ improved exception messages.
2010-02-23 11:19:55 +00:00
07fdcb1f1b Merged changes in the trunk up to revision 27063. 2010-02-21 21:47:52 +00:00
6589038350 python rna api now clamps values, (was fun to see the spot_size go backwards)
Vector callbacks still missing clamp checks
2010-02-21 14:48:28 +00:00
709678ca87 Merged changes in the trunk up to revision 26976. 2010-02-16 22:34:43 +00:00
677386e53a initial support for extensions in the user preferences
only one script at the moment:
 [#20848] Blender Gears for 2.5 (for ideasman42)
 from Michel Anders (varkenvarken)
2010-02-14 23:33:18 +00:00
135a944c66 Merged changes in the trunk up to revision 26856. 2010-02-13 01:13:16 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
eabb8e2942 rename Nurb to Spline in RNA since Nurb also stores bezier and poly lines. 2010-02-10 08:53:08 +00:00
ed266e868c Merged changes in the trunk up to revision 26719. 2010-02-08 21:13:33 +00:00
46c0caf7c6 RNA - Added reset to defaults support for Strings too
Many string properties need tweaks to work correctly with this, since many don't have any reasonable defaults set (especially name fields, which often get cleared with these changes).
2010-02-08 09:22:17 +00:00
fc123a40d3 patch [#20889] Support "unit"s for FloatProperty
from Martin Bürbaum (pontiac)
(with own minor changes)
2010-02-02 23:03:56 +00:00
039d087171 subtype support for properties in bpy.props. 2010-02-01 22:04:33 +00:00
2d8ee7efa3 Merged changes in the trunk up to revision 26409. 2010-01-30 02:58:48 +00:00
655800bbab Typo in function declaration causing warnings. 2010-01-26 17:09:32 +00:00
14d4feca57 Radians vs Degrees: The Second Attempt
F-Curves now internally store radians again instead of degrees. 
- This solves problems with inconsistencies when working with drivers.
- No need to version patch old files, potentially screwing them up. As such, removed the version patching for F-Curves.
- Is better suited to optionally showing radians throughout the UI instead or degrees.

As a result, values are now converted on the fly in the Graph Editor for display and operators that operate on values. I've made the conversion system for this rather general, so that other unit type conversions can also be hooked up with the type conversion backend.

Also, made some tweaks to F-Curve RNA wrapping to make it represent the data better.

TODO:
- Transform code currently still needs to be corrected to work with these changes. Currently moving keyframes for rotation curves will make them change too rapidly vertically when using degrees.
2010-01-26 03:16:14 +00:00
aa03d0be9a Merged changes in the trunk up to revision 26260. 2010-01-25 21:06:08 +00:00
9733e902a5 RNA functions
Fixed and completed support for returning multiple values. This includes support for returning arrays, both fixed and dynamically sized. The way this is achieved is by storing an additional int value next to the dynamic parameter in the ParameterList stack which gets passed to the C function as an additional parameter. In the case of return parameters it is duty of the C function to set this int to the correct length value for the dynamic parameter (which makes sense). Note that for the dynamic output/return parameter it is assumed the function has allocated that memory (which gets freed automatically).

Also, I cleaned the makesrna's bridge function generation code a bit and renamed PROP_RETURN to PROP_OUTPUT, which represents better the reality now that there are multiple returns. The function now to mark multiple returns (outputs) is RNA_def_function_output.

For an example, look at Action.get_frame_range in rna_action_api.c, by the way Aligorith I removed the #ifdef for this function now that there's support for returning arrays, feel free to modify (the function seems to work).
2010-01-24 10:51:59 +00:00
aab8196a1c Finished some work from the weekend to keep local tree clean..
* Added a generic 'histogram' ui control, currently available in new image editor 
'scopes' region (shortcut P). Shows the histogram of the currently viewed image.

It's a baby step in unifying the functionality and code from the sequence editor, 
so eventually we can migrate the sequence preview to the image editor too, 
like compositor.

Still a couple of rough edges to tweak, regarding when it updates. Also would 
be very nice to have this region as a partially transparent overlapping region...
2010-01-19 01:32:06 +00:00
3993873420 Merged changes in the trunk up to revision 26083. 2010-01-18 20:01:58 +00:00
c7dfa96aea bugfix [#20639] BF25_SVN_25888 and below - OBJ and 3DS import fails
blender supports type changing for textures in a way that python doesnt.
add a new general function.

Example usage:
 tex = bpy.data.textures.new("Foo")
 tex.type = 'IMAGE'
 tex = tex.recast_type()

Macro to give the number of users accounting for fake user.
 ID_REAL_USERS(id)
Use this so you can remove a datablock if it has a fake users as well as apply transformations to it in the 3D view.

Move api function bpy.data.add_texture() --> bpy.data.textures.new()/remove()
2010-01-17 20:06:34 +00:00
1b580dde6e Console:
* Added Theme support for the console.
You can change:
-Header Color
-Text Color of Output, Input, Info and Error Messages. (Inside the User Preferences -> Themes)
2010-01-15 17:00:37 +00:00
7df44b9ced Fix: wasn't able to rename node group nodetree name, or access the nodetree at all. Now you
can switch between them too.

Wrapped group nodes in RNA as part of this.
2010-01-13 06:35:12 +00:00
7b530567ef Merged changes in the trunk up to revision 25863. 2010-01-10 15:28:24 +00:00
f3a6474537 Animation Visualisation Cleanups - Part 2:
* Finished baking code for motion paths, generalising it so that it works for both Objects and Bones. 
It is based on the old code for baking bones, although I have modified the updating code to use a more 'correct' method of updating dependencies. However, this may turn out to be too slow, and another API method should be added for that...

* Moved some of the old version-patching code for animviz settings out of the drawing functions, instead doing this on the version patching proper.

* Added RNA support for the new AnimViz types, and included RNA access via their users too. The old settings have still been left in for now, since there are still some things not ready to use yet.

----

* F-Curve's with sample points (i.e. sounds to F-Curves) now perform linear interpolation between sample points instead of using constant interpolation.
2010-01-07 22:54:05 +00:00
a9861e3381 Durian Request: Drivers Recode
Highlights:
* Support for Multi-Target Variables
This was the main reason for this recode. Previously, variables could only be used to give some RNA property used as an input source to the driver a name. However, this meant that effects such as Rotational Difference couldn't be used in conjunction with other effects and/or settings to achieve the powerful results. Now, a variable can take several input targets, perform some interesting operations on them, and spit out a representative value based on that.

* New Variable Types
With the introduction of multi-target variables, there are now 3 types of variable that can be used: single property (i.e. the only type previously), Rotational Difference (angle between two bones), and Distance (distance between two objects or bones).

* New Driver Types
In addition to the existing 'Average', 'Sum', and 'Expression' types, there is now the additional options of 'Minimum' and 'Maximum'. These take the smallest/largest value that one of the variables evaluates to.

* Fix for Driver F-Curve colouring bug 
Newly added drivers did not get automatically coloured in the Graph Editor properly. Was caused by inappropriate notifiers being used.


Notes:
* This commit breaks existing 2.5 files with drivers (in other words, they are lost forever). 
* Rigify has been corrected to work with the new system. The PyAPI for accessing targets used for the variables could still be made nicer (using subclassing to directly access?), but that is left for later.
* Version patching for 2.49 files still needs to be put back in place.
2010-01-04 21:15:45 +00:00
e83940d994 support for multiple return values from rna functions & support for returning arrays, (no functions are using this yet).
patch from Elia Sarti, (vekoon) with some modifications mainly for the python api.

- multiple values are returned as a typle in the order that are defined.
- added support for registered types returning multiple arguments (untested).
- renamed func->ret --> func->c_ret, since this only defines what the C function returns.
2010-01-02 10:42:38 +00:00
a7d268d38e Cessen Rigging Request: "Copy Transforms" Constraint
This constraint simply copies the transformation matrix of the target, and assigns it to the owner.
2010-01-02 04:14:17 +00:00
b00cddeb66 Macro registration using the normal rna registration methods (like operators).
bpy.types.register(MacroClass)

instead of

bpy.ops.add_macro(MacroClass)

The rest is unchanged.

Also remove some now unused code for the old registration methods (there's still some remaining).
2009-12-30 22:14:32 +00:00