Commit Graph

14200 Commits

Author SHA1 Message Date
Brecht Van Lommel
4e4e8ef98f RNA:
* For RNA wrapped functions, the prototypes of the original
  function being wrapped is now generated as well. This is
  an extra check to ensure that the function is correctly
  wrapped. It's printed after the function is used to still
  get proper warnings in case the #include for it is missing.
2009-04-15 15:12:42 +00:00
Brecht Van Lommel
8b1207d500 UI:
* Converted scene buttons layout code to use python.
2009-04-15 15:10:31 +00:00
Brecht Van Lommel
874c9e8c58 UI:
* Added simple row template to layout buttons
  in a horizontal row, so you don't need to use
  columns for it.
2009-04-15 15:09:36 +00:00
Ton Roosendaal
ad164a5261 2.5
Fixed & upgraded tooltips to new drawing system.
Also fixed small error in menu shadows. Rounding of shadow below
menu went wrong.
2009-04-15 14:43:54 +00:00
Joshua Leung
b68fb5df74 Action Constraint: Optimisation attempt
Following on from the methods added specially for PoseLib to only execute the F-Curves in a given Action Group, I've attempted to use this for evaluating Action Constraints on Pose Channels. This does rely on the F-Curves being in groups named according to name of the Pose Channel of interest, hence, we may need some way to be able to fine tune this later. 

Preliminary tests seem to be promising, with rigs with quite a few action constraints being slightly more responsive (subjective test though). Please test thoroughly.
2009-04-15 12:59:49 +00:00
Joshua Leung
1680f5f2b0 PoseLib: Fixed lingering bugs with Browsing (Ctrl-L)
* Bug with confirming was due to mixed up order for events handling and updates for drawing. Now events are handled before relevant updates are done for drawing, since these only get called when an event occurs.

* View manipulations work again, and in a much nicer way thanks to the OPERATOR_PASS_THROUGH flags :)

* Search seems to work much better now again too...
2009-04-15 12:38:04 +00:00
Joshua Leung
4c66f26230 PoseLib: Interactively browsing poses with Ctrl-L now mostly works again
This (most important part) of PoseLib now mostly works again. It even works for PoseLibs saved with the old animation system.

However, there are a few annoying bugs that need to be addressed still:
* When 'confirming' poses, the pose changes to the next one before PoseLib exits. I'm not quite sure where this is coming from yet...
* There are still a few minor bugs in the search-string code that will get ironed out
* AutoKeyframing doesn't work yet for this
2009-04-15 12:04:10 +00:00
Joilnen Leite
1f95600c5a Fixing linux compiling 2009-04-15 10:18:58 +00:00
Joshua Leung
c657313fee PoseLib: Operatorfied Add/Remove/Rename Tools
Changes:
* These still use the old hotkeys - Add (Shift-L), Remove (Alt-L), Rename (Ctrl-Shift-L)
* Outliner now shows PoseLib entry. Todo still is to use a different icon for this?

Notes:
* The code is now much simpler in many places :)
* Add and Rename operators require a string as input to set a new name for the Pose concerned. For now, I've just added a prop for this, which will hopefully be able to be filled in at some point.
2009-04-15 03:22:22 +00:00
Joshua Leung
2dbf73f6a0 2.5 PoseLib - First steps to get PoseLib to work in 2.5
* 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-15 01:10:36 +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
2d17d86239 Action Code - Tidied up some code that wasn't working yet 2009-04-14 10:18:48 +00:00
Ton Roosendaal
cf6a1630cf 2.5
Code revamp: moved the animation colors for widget to own struct, was
polluting the per-widget theme colors too much. Still WIP here... it
will go to Theme struct once I've removed all old colors.
2009-04-13 15:55:27 +00:00
Ton Roosendaal
2a6b1db9ad 2.5
Bugfix: loading 2.5 .blend files in different sized windows didn't correct
the screen size for it yet.
2009-04-13 14:39:43 +00:00
Ton Roosendaal
bf2ccf04a7 2.5
Makefile update for osx: copy ui scripts to .blender dir in .app folder
2009-04-13 14:22:22 +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
b27e240124 Further simplified code for defining builtin KeyingSets (i.e. made the macros do more!) 2009-04-13 02:57:24 +00:00
Joshua Leung
b27436af7c 2.5 - Separated Keying Sets code out into its own file 2009-04-13 02:40:56 +00:00
Joshua Leung
f0fea32129 2.5 - Assorted tweaks in Graph Editor 2009-04-13 00:46:32 +00:00
Shaul Kedem
a71016a1a3 additional op naming convention changes 2009-04-12 23:05:40 +00:00
Campbell Barton
e9937120b8 py3 needs print() 2009-04-12 22:53:54 +00:00
Shaul Kedem
81e0f6f3ce curve op align to naming convention 2009-04-12 22:43:07 +00:00
Shaul Kedem
0d682a369b armature ops aligned with naming conventions - small fix 2009-04-12 22:16:21 +00:00
Shaul Kedem
8a7a98cbdd sequencer op names change 2009-04-12 20:32:42 +00:00
Shaul Kedem
17814e8bf1 editmesh_tools.c op name change 2009-04-12 17:54:07 +00:00
Shaul Kedem
0780269f13 editmesh_mods.c op names change 2009-04-12 17:43:43 +00:00
Ton Roosendaal
095fe990e8 2.5
Patch provided by Thomas (DingTo). Fixes min/max limits in rna.
2009-04-12 17:28:41 +00:00
Shaul Kedem
5bdd541f0c op names change 2009-04-12 17:28:16 +00:00
Ton Roosendaal
5cb480cef4 2.5
Various ui fixes:

- panel drawing now correctly follows scaled view
- made imagewindow buttons using TH_PANEL color back (was too dark)
- click on open/close panel was wrong
- menu items disabling now draws correct
- curve/hsv widgets didn't draw on right locations
- numsliders have nicer interior slider decoration
- new type TOGBUT to enforce old style toggle button (not new type
  'option button' with checkmark
- (temp) disabled live updating while using Curve widget, was 
  too slow to be fun. Needs general solution :)
2009-04-12 13:40:29 +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
Campbell Barton
3f98b7ac35 Added back importing UI scripts rather then running,
The bug was todo with bpy.data and bpy.types becoming invalid, temporary fix is to re-assign them to the bpy module before running python operators or panels.
will look into a nicer way to get this working.
2009-04-11 16:17:39 +00:00
Shaul Kedem
91d6e68830 changed parts x parts y and threads to be minimum of 1, thnx DingTo 2009-04-11 16:10:15 +00:00
Elia Sarti
c848ea953d 2.5 / RNA
API, added support for return values for RNA_function_call_direct and completed the code. Didn't test it though.

Returns works exact the same way as other parameters for format strings except you put a R in front of it. For instance for a function that accepts two vectors and returns a vector you use a format like "f[4]f[4]Rf[4]". 
I'm thinking about allowing arbitrary white space in the format string (or use comas as separators) to make it more readable. 
The return format *must* always come last and of course the corresponding argument you pass to the function has to be a pointer so that it can be filled with the return value.
2009-04-11 15:46:35 +00:00
Campbell Barton
a406c15d93 Python Api
own error with refcounting and raise an error when bpy.types cant generate a subtype (though it shouldn't happen)
2009-04-11 15:05:42 +00:00
Ton Roosendaal
f28a6a90f1 2.5
Styles/fonts will be saved in userdef, but not yet... forgot to
zero pointers on read, causing crash on .B.blend read saved in 2.5
2009-04-11 14:43:03 +00:00
Elia Sarti
8132ca62df hem.. other small fix 2009-04-11 13:24:02 +00:00
Elia Sarti
288f772350 2.5 / RNA
Committing quick RNA function calling RNA_function_call_direct* functions set à la fprintf.

It works like this (with ptr being an RNA pointer to some ID):

RNA_function_call_direct_lookup(ptr, "rename", "s", "MyCamera");

the format specifier would not be strictly needed but I prefer to keep this as it gives nice error handling in case some RNA function changes. 
Format strings are very easy and similar to python ones:
"b" for booleans
"i" for integers
"f" for floats
"s" for strings
"e" for enums (using int values)
"O" for pointers (using O as in py, we can change to P)
"N" special NULL parameter, valid to skip optional parameters
For bools, ints and floats you can use a special format specifier with [n] where n is the size of an array of that type. For instance "f[4]" to set a location/vector (it expects a pointer to float* holding the array).

Return values still have to be implemented.
Also I know the name is a bit long maybe we can cut it up at RNA_call_direct or simply RNA_call.
2009-04-11 12:44:01 +00:00
Campbell Barton
963e217c2a undo previous commit, changing running the script to importing it somehow made it crash when running the class functions. will look into this further. 2009-04-11 10:01:49 +00:00
Joseph Eagar
59578bfad2 as per discussion with ton, the editmesh accessors now live
in blenkernel.
2009-04-11 08:26:51 +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
Campbell Barton
9d922b4c24 Changed the script UI registration to import rather then run each python script,
this means it caches the compiled pyc files after importing fro the first time.

My times for importing 501 buttons_objects.py files were.
- running each as a script 1.9sec
- importing for the first time 1.8sec
- importing a second time (using pyc files) 0.57sec

Also added "bpy" to sys.modules so it can be imported.
2009-04-11 05:46:40 +00:00
Brecht Van Lommel
c7b587105f UI:
* Added very basic loading of .py files on startup to define panels.
  It now executes all .py files in .blender/ui on startup. Right now
  this contains the object buttons, the C code for it is commented out.

  These files should get embedded in the blender executable as well
  eventually, that's a bit more complicated so this works for now.

* For scons and cmake it seems to copy & find the files OK, for make
  only "make release" works (same with scripts/ folder it seems).

* Added BLI_gethome_folder function in BLI_util.h. This is adapted
  from bpy_gethome, and gives the path to a folder in .blender like
  scripts or ui.

There's plenty of things to figure out here about paths, embedding,
caching, user configs ...
2009-04-11 02:18:24 +00:00
Brecht Van Lommel
3ed5e21537 UI:
* Template slots are no longer specified per item, but are
  a state now, set with uiTemplateSlot.
* Some renaming of Layout functions for consistency.
* Fix for roundbox in stack template, now is always behind
  the other buttons.
* Improved python API for layout:
  http://www.pasteall.org/5008/python
2009-04-11 01:52:27 +00:00
Brecht Van Lommel
9814ea4bcb RNA: python support for REQUIRED flag for function parameters. 2009-04-11 01:45:05 +00:00
Brecht Van Lommel
344449e483 RNA:
* Added REQUIRED flag for function parameters.
* Made dupliframes/verts/faces/groups an enum, and make it editable.
* Enum bitflags were broken, fixed.
2009-04-11 01:43:50 +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