11 years agoNLA SoC: Current Frame can now be negative
Joshua Leung [Tue, 7 Jul 2009 06:56:29 +0000 (06:56 +0000)]
NLA SoC: Current Frame can now be negative

This commit is quite experimental, and might have to be reverted, but in quite a few places, the cleanups from this commit were already necessary.

* I've left most of the image-handling functions alone, since I'm not sure how well they cope with negative indices.
* Start/End frames cannot be negative for now... any specific reasons why they should be negative?

11 years agoNLA SoC: Small cleanup in Graph Editor struct code (obsolete + commented out stuff)
Joshua Leung [Tue, 7 Jul 2009 06:39:01 +0000 (06:39 +0000)]
NLA SoC: Small cleanup in Graph Editor struct code (obsolete + commented out stuff)

11 years agoNLA SoC: Auto-Snapping Fixes (Transform)
Joshua Leung [Tue, 7 Jul 2009 06:21:38 +0000 (06:21 +0000)]
NLA SoC: Auto-Snapping Fixes (Transform)

Snap to nearest-second works again for NLA and Graph Editors

11 years agoNLA SoC: Fixes for bugs in transform code from previous commit
Joshua Leung [Tue, 7 Jul 2009 06:16:06 +0000 (06:16 +0000)]
NLA SoC: Fixes for bugs in transform code from previous commit

* The code to move strips between tracks now works (though it can still be a bit too eager to change tracks half-way through some transforms).
Strips are moved up/down one strip at a time, depending on whether there is any space in the next-track in the direction you direct it to move in.

* Auto-snapping works again. Also enabled snap-to-marker option for Graph Editor here.

11 years agoNLA SoC: Transform Code for NLA-Strips recoded (still buggy)
Joshua Leung [Tue, 7 Jul 2009 05:41:59 +0000 (05:41 +0000)]
NLA SoC: Transform Code for NLA-Strips recoded (still buggy)

Recoded the Transform code for NLA-Strips so that they can now be moved between strips and will not get truncated when they get moved into other non-moving strips.

* The current code for moving strips between tracks is buggy (only goes up, and has a tendency to move up without being told to)
* Auto-snapping doesn't work yet...

11 years agoNLA SoC: Start of integration of Meta-strips in Transform
Joshua Leung [Tue, 7 Jul 2009 02:12:50 +0000 (02:12 +0000)]
NLA SoC: Start of integration of Meta-strips in Transform

* Chains of selected strips are now converted to meta-strips before transforms begin, and converted back afterwards. This simplifies the transform code needed in later stages...

* Transform-flushing code for Meta-Strips should now work. There seems to be a little bit of numeric inaccuracy problems somewhere, as two strips which met at the same frame can get separated when scaling.

* Meta-strips now draw with proper text identification

* Snapping strips now properly clears meta-strips if a moved strip needs to be moved into a new track to be accomodated.

* Fixed a filter used by a selection-operator.

11 years agoNLA SoC: Fixes for Meta-Strips and Editing
Joshua Leung [Mon, 6 Jul 2009 12:24:09 +0000 (12:24 +0000)]
NLA SoC: Fixes for Meta-Strips and Editing

* Split strip (YKEY) now plays nicely with Transitions and Metas. Meta strips get split up into their child strips, while transitions are ignored.

* Wrapped Meta_Strip->strips in RNA

* Bugfixes in Meta-strip API functions to silence some runtime-errors...

11 years agoNLA SoC: More work on Meta-Strips
Joshua Leung [Mon, 6 Jul 2009 11:06:34 +0000 (11:06 +0000)]
NLA SoC: More work on Meta-Strips

* Added several API functions for Meta-Strips editing. One of these (flush transform) still needs a few tweaks before it does its job well enough for all cases.

* Meta strips are now drawn with a purple-ish colour. The start/end points of the strips they encompass are shown with lines along the length of the strips, with lines starting from the top indicating start-points and lines starting from the bottom indicating end-points.

* Meta strips can be made (i.e. strips can be assigned to meta-strips) by selecting some strips and pressing Shift-G.
Meta strips can be removed by selecting some meta-strips and pressing Alt-G.

* Strips can now be 'snapped' to start from: the current frame, the nearest frame, the nearest second, or the nearest marker; using the Shift-S hotkey.
'Islands' of adjacent selected strips occurring in the same track are moved together as a single strip so that the start-point of the first strip is on the sepcified time, but all the relative lengths of strips stay the same. Internally, temporary meta-strips are created to facilitate this.

11 years agoNLA SoC: Start of 'Meta' Strips
Joshua Leung [Mon, 6 Jul 2009 03:44:44 +0000 (03:44 +0000)]
NLA SoC: Start of 'Meta' Strips

Refactored the backend code/API's to support 'meta' strips (i.e. strips containing other strips). These have been implemented to be nested to 'unlimited' depths (in terms of common usages that is, though there is a very remote chance of stack-overflow in theoretrical evil cases only that shouldn't ever be encountered in production).

This paves the way for implementing the necessary tweaks needed for the transform code (in addition to some cool user-level tricks)

11 years agoNLA SoC: Muting and Graph-Editor Curve visibility for (Action) Groups
Joshua Leung [Fri, 3 Jul 2009 10:28:10 +0000 (10:28 +0000)]
NLA SoC: Muting and Graph-Editor Curve visibility for (Action) Groups

Groups (the Action variety) can now be muted, and also be set to not be drawn in the Graph Editor. These settings get applied to all the F-Curves within the group, overriding any settings individual F-Curves might have, allowing users to quickly mute or hide groups of curves without having to go through clicking on all of them.

Also, added a flag that can be used to set the curve visiblity on AnimData level too. This will be enabled in a future commit.

11 years agoNLA SoC: Toggle for 'Editing in Place'
Joshua Leung [Fri, 3 Jul 2009 04:48:44 +0000 (04:48 +0000)]
NLA SoC: Toggle for 'Editing in Place'

The 'pin' icon beside the name of the active Action when tweaking some strip's action can be used to toggle between editing the Action's keyframes in 'mapped' time or in 'un-mapped' time.

11 years agoNLA SoC: Quick hack to get layer buttons in 3D view updating visible layers correctly.
Joshua Leung [Fri, 3 Jul 2009 04:24:19 +0000 (04:24 +0000)]
NLA SoC: Quick hack to get layer buttons in 3D view updating visible layers correctly.

Now it is possible to load old files and be able to switch layers to show/hide objects AND have that reflected in the Animation Editors which rely on the scene layers being set correctly.

11 years agoNLA SoC: Merge from 2.5
Joshua Leung [Fri, 3 Jul 2009 01:57:38 +0000 (01:57 +0000)]
NLA SoC: Merge from 2.5

21301 to 21329

11 years agoNLA SoC: Assorted fixes
Joshua Leung [Fri, 3 Jul 2009 01:10:46 +0000 (01:10 +0000)]
NLA SoC: Assorted fixes

* Made NLA Editing functions more aware of transitions.
- A transition can only be added between a pair of action-clips. Previous, two transitions could be added next to each other, which has undefined behaviour
- Deleting a strip with transition(s) on either side will remove the transitions too. Feedback welcome on this
- The 'type' setting for NLA-Strips is no longer editable. This was dangerous as it could result in transitions with undefined behaviour (though nothing would happen).

* Menus for adding F-Modifiers now only show relevant modifiers (i.e. 'Invalid' is not included in the list, and 'Cycles' doesn't need to be shown for NLA since we've got repeat)

* Function Generator and Noise F-Modifiers now have complete GUI's. A few settings were missed during the porting process.

* F-Modifier buttons now have their source-ID's included in the RNA Pointers used. This didn't get them animateable directly, but is a step closer.

11 years agoNLA SoC: Added buttons for animating NLA-Strip Influence/Speed
Joshua Leung [Thu, 2 Jul 2009 23:36:16 +0000 (23:36 +0000)]
NLA SoC: Added buttons for animating NLA-Strip Influence/Speed

These buttons are found in the Evaluation panel, but are currently disabled as I've yet to add the proper code to ensure that animating these will work correctly. They will hopefully be working before the end of the day.

11 years agoNLA SoC: UI-Drawing for Generator and Envelope FModifiers Restored
Joshua Leung [Thu, 2 Jul 2009 23:27:11 +0000 (23:27 +0000)]
NLA SoC: UI-Drawing for Generator and Envelope FModifiers Restored

These now use a hybrid drawing approach - using the layout engine for just layouts, but still mostly using old-style buttons in many places where button callbacks and/or special data-access methods are needed (or where RNA wrapping isn't in place yet).

11 years agocmake support for building without fluidsim
Campbell Barton [Thu, 2 Jul 2009 22:22:35 +0000 (22:22 +0000)]
cmake support for building without fluidsim

11 years ago2.5: Physics Buttons
Brecht Van Lommel [Thu, 2 Jul 2009 19:41:31 +0000 (19:41 +0000)]
2.5: Physics Buttons

All kinds of changes to get it ready for UI layouts. This means RNA
and operators should be working correct, but most buttons are still
not actually there yet.

* Added near empty soft body, fluid, field and collision panels,
  tweaks to cloth panels.
* Fluid bake works, but without escape or showing any progress.
* Fluid/Softbody/Cloth/Collision can now be both added as modifiers
  or in the physics panels.
* Missing: fields & soft body for particles.
* Missing: proper updating softbodies, guess this code still needs
  updates after pointcache refactor?

11 years ago2.5
Ton Roosendaal [Thu, 2 Jul 2009 18:12:46 +0000 (18:12 +0000)]

Cleanup of scroller drawing in 2D windows.


Will add 'zoom' widget circles later, as mockupped here:

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.

11 years agoNLA SoC: FModifier drawing converted to use Layout Engine
Joshua Leung [Thu, 2 Jul 2009 12:41:03 +0000 (12:41 +0000)]
NLA SoC: FModifier drawing converted to use Layout Engine

* Most of the F-Modifiers have been ported to use the layout engine + RNA for drawing their buttons now. This plays much nicer with various button-layouts.
--> As a nice demo, try adding a Noise Modifier to a NLA-strip, and change the 'size' setting to about 2 to see some effects.

* Generator and Envelope modifiers haven't been ported yet since they're quite complex (requiring more time + energy), and as such, have been made to have some temporary error prints instead. Will check on this tomorrow.

* Finished/cleaned up the RNA-wrapping of most FModifiers.

TODO's (help requested... Brecht?):
Generator modifier's UI cannot be wrapped yet using the layout engine (though I might try using the old system only), as I'm having some trouble wrapping the coefficients array for this (see rna_fcurve.c - rna_def_fmodifier_generator())

11 years agoout own Py_GetPath() function to replace pythons, so we can bundle python modules...
Campbell Barton [Thu, 2 Jul 2009 12:11:20 +0000 (12:11 +0000)]
out own Py_GetPath() function to replace pythons, so we can bundle python modules with blender, #if 0'd for now but having it is useful for testing.

This works by copying /usr/lib/python3.1 to a dir called "python", next to blenders "ui" and "io" dirs.

11 years ago2.5
Ton Roosendaal [Thu, 2 Jul 2009 11:24:27 +0000 (11:24 +0000)]

Python definition of view3d context-depending toolbar. Feel free to edit
it into anything useful. :)

11 years ago2.5
Ton Roosendaal [Thu, 2 Jul 2009 11:23:19 +0000 (11:23 +0000)]

More toolbar functionality for workflow review.

- Split the region in two parts, bottom has the Tool Properties, the
  top part shows 2 panels, one for python defined tools, other for a
  "tool shelf" which (later) will get saved in files.
- Added a full context driven framework for this toolbar, showing
  the tools depending on 3D window 'mode'. Both python defined tools
  as the shelf respect this. So - for example - you will see different
  tools in editmode mesh, as in vertex paint mode, etc.
- First template for the python tools will be committed after this commit;
  it has placeholder tools to just show/test functioning.

NOTE: if you had saved a layout that shows tools region, open/close it
once to get the new region created for properties.


- Moving paint properties to tool settings
- Test a layout with horizontal toolbar (without properties)
- Bring back floating panels, and put tool-properties here. (as option)

11 years agoNLA SoC: F-Modifiers working on NLA Strips
Joshua Leung [Thu, 2 Jul 2009 06:41:10 +0000 (06:41 +0000)]
NLA SoC: F-Modifiers working on NLA Strips

* Using the Ctrl-Shift-M hotkey, F-Modifiers can be added to all the selected strips.

* F-Modifiers can also be added/tweaked from the NLA N-Key properties. The UI now uses the same code as for the graph editor ones.

The UI drawing here is currently messed up from the NLA side, since it seems combining normal layout stuff and old-style uiBlocks doesn't seem to work too well (BUT! the buttons are at least functional).
Next up, I'll need to recode the buttons panel for the Graph Editor so that all of the drawing can be migrated over to use the new layout engine.

11 years agoNLA SoC: Separating out F-Modifier API
Joshua Leung [Thu, 2 Jul 2009 05:25:14 +0000 (05:25 +0000)]
NLA SoC: Separating out F-Modifier API

* F-Modifier API is now in its own file in blenkernel
* Renamed and refactored these so that they're no dependent on F-Curves, since all they really used was the fcu->modifiers list
* Added missing license blocks to a few files

11 years agoNLA SoC: Separating F-Modifier UI drawing into its own file
Joshua Leung [Thu, 2 Jul 2009 04:47:36 +0000 (04:47 +0000)]
NLA SoC: Separating F-Modifier UI drawing into its own file

* F-Modifier UI drawing/handling is now defined in a separate file so that it will be more suitable for inclusion into the NLA Editor's buttons.

* Started removing F-Curve dependence from the modifier drawing code, which wasn't strictly necessary

* Fixed F-Curve RNA wrapping to correctly use FPoints instead of the bulkier BPoints. Although nobody was likely to have encountered bugs here yet, this would almost certainly have contributed to some segfaults/data corruption along the track.

11 years agoNLA SoC: Bugfix for Auto-Keyframing version patching
Joshua Leung [Thu, 2 Jul 2009 03:50:20 +0000 (03:50 +0000)]
NLA SoC: Bugfix for Auto-Keyframing version patching

When auto-keying is enabled, the insertion mode is no-longer blank. The version patching code now takes this into account, but the conversion doesn't work for existing .b25.blend defaults files though.

11 years agoNLA SoC: Merge from 2.5
Joshua Leung [Thu, 2 Jul 2009 03:32:57 +0000 (03:32 +0000)]
NLA SoC: Merge from 2.5

21210 to 21300

Note to self: the next merge will be messy again, since 2 commits occurred this one was complete

11 years agoNLA SoC: Adding some files that seem to have been missed during some merges. Hopefull...
Joshua Leung [Thu, 2 Jul 2009 02:53:18 +0000 (02:53 +0000)]
NLA SoC: Adding some files that seem to have been missed during some merges. Hopefully all of these should really be in the repositry...

11 years agoNLA SoC: Separated 'Built-In Function Generator' FModifier into a separate FModifier
Joshua Leung [Thu, 2 Jul 2009 02:12:37 +0000 (02:12 +0000)]
NLA SoC: Separated 'Built-In Function Generator' FModifier into a separate FModifier

Started cleaning up FModifiers in preparation for allowing them to be used on NLA Strips.

This commit separates the 'Built-in Function' mode for the Generator modifier out into its own modifier, since it was being quite frequently used (and the RNA wrapping for this used to be quite hackish).

Old files with FModifiers saved (i.e. old 2.5 files, but not any others) will not load correctly as a result of these changes (the wrong modifiers will be shown). I've decided that there are not likely to be many files affected by this yet, but doing this will result in a much nicer modifiers-define list in the long run.

11 years agoNLA SoC: Proper poll callbacks for Graph Editor
Joshua Leung [Thu, 2 Jul 2009 01:01:18 +0000 (01:01 +0000)]
NLA SoC: Proper poll callbacks for Graph Editor

For now, some of these polls may be a bit too restrictive, but at least we have some unified+cleaned bases to work from now (instead of relying on the generic ED_operator_area_active).

11 years ago2.5: Lists for vertex groups, shape keys, uvs, vertex colors.
Brecht Van Lommel [Wed, 1 Jul 2009 22:25:49 +0000 (22:25 +0000)]
2.5: Lists for vertex groups, shape keys, uvs, vertex colors.

* Added the relevant active_*_index properties, with proper
  get/set/range, updates and notifiers.
* Context.tool_settings.
* ToolSettings.vertex_group_weight.

* MESH_OT_uv_texture_add/remove
* MESH_OT_vertex_color_add/remove
* MESH_OT_sticky_add/remove
* OBJECT_OT_vertex_group_add/remove/assign/remove_from/
* OBJECT_OT_shape_key_add/remove

* Some updates and cleanups in list template code.

Known issue: when going in & out of editmode, uv textures and vertex
colors dissappear. I thought me->edit_mesh would be NULL when not in
edit mode but it is not?

11 years ago2.5: Fix a case of using freed memory in event handling.
Brecht Van Lommel [Wed, 1 Jul 2009 22:16:16 +0000 (22:16 +0000)]
2.5: Fix a case of using freed memory in event handling.

11 years agoneeded for building with py2
Campbell Barton [Wed, 1 Jul 2009 20:55:32 +0000 (20:55 +0000)]
needed for building with py2

11 years agoAdded support for collection parameters also for RNA_function_call_direct family...
Elia Sarti [Wed, 1 Jul 2009 19:56:50 +0000 (19:56 +0000)]
Added support for collection parameters also for RNA_function_call_direct family of functions. The syntax for passing collection parameters is similar to passing pointers where you pass first the RNA type and then the ListBase representing the collection. The format specifier is "C" instead of "O", e.g.

RNA_function_call_direct_lookup(C, reports, ptr, "do_something", "sC", "some string value", &RNA_SomeItemType, listbase);

Note that from python you could in theory pass collections of items each of a different type while using this API you can't. I don't think this should be a problem as RNA supports collections this way anyway (i.e. where items are all of the same type or inherit from the same base type).

Also a small fix for pointer parameters.

11 years agoslice support working in py3 for Vector and Matrix types.
Campbell Barton [Wed, 1 Jul 2009 13:31:36 +0000 (13:31 +0000)]
slice support working in py3 for Vector and Matrix types.
Added slice to PyRNA collections and arrays (py3 only).

some_verts = mesh.verts[0:10]
some_rna_array[4:-1] = [0,1,2,3]

Collections dont support assignment, when assigning slices, resizing the array isnt support like with python lists.

11 years agoRNA
Brecht Van Lommel [Wed, 1 Jul 2009 12:19:00 +0000 (12:19 +0000)]

* Mesh.add_geometry, Mesh.update and make indices editable. This
  is without checking if they are valid still, no time now to
  implement this.
* Also fix warnings in rna_ui.c, and a bug in CDDM_calc_edges.

Example code:

co = [0.0, 0.0, 0.0] + [1.0, 0.0, 0.0] + [0.0, 1.0, 0.0] + [1.0, 1.0, 0.0]
faces = [0, 1, 2, 0] + [1, 3, 2, 0]

mesh.add_geometry(4, 0, 2)

mesh.verts.foreach_set("co", co)
mesh.faces.foreach_set("verts", faces)


11 years agoNLA SoC: Renamed a few options for the Mirror operators since their purpose wasn...
Joshua Leung [Wed, 1 Jul 2009 01:17:58 +0000 (01:17 +0000)]
NLA SoC: Renamed a few options for the Mirror operators since their purpose wasn't clear (in practice)

11 years ago2.5/Sculpt:
Nicholas Bishop [Tue, 30 Jun 2009 23:06:50 +0000 (23:06 +0000)]

== Re-added smooth stroke ==

UI: toggle is just in the sculpt menu for now. Also changes the sculpt paint cursor slightly, draws a line between previous and current locations.

It's a different implementation than in 2.4, works like this:

The stroke interpolates between the last mouse location and the current location, weighted towards the previous location. If the stroke gets within a certain radius of the current mouse location, the stroke stops. This radius allows for sharp turns in the stroke.

Todo: there are two hard-coded parameters that should become user settable, that's the weighting between previous and current locations, and most important, the no-update radius.

Note also that this option was added as a per-brush flag, worth discussing whether that's the correct place, or whether it should be a sculpt setting like symmetry?

== Improved stroke spacing ==
The previous implementation of stroke spacing simply guaranteed that stroke dots would not occur any closer than the space setting. It now forces stroke dots to always be the specified distance apart.

Todo: Performance gets pretty awful with a small spacing setting, this needs optimization.

11 years agodisabling foreach_get/set for python2.x, since it uses new buffer api.
Campbell Barton [Tue, 30 Jun 2009 21:59:21 +0000 (21:59 +0000)]
disabling foreach_get/set for python2.x, since it uses new buffer api.

11 years ago2.5 filebrowser
Andrea Weikert [Tue, 30 Jun 2009 20:34:00 +0000 (20:34 +0000)]
2.5 filebrowser
* show only name of the last directory for the bookmark
* small fix of projectfile: header BLI_fileops.h was moved
Note: full path should appear in tool tip later, also for renaming bookmarks later on.

11 years ago2.5 MSVC projectfiles
Andrea Weikert [Tue, 30 Jun 2009 20:31:58 +0000 (20:31 +0000)]
2.5 MSVC projectfiles
* small maintenance: editors/info_header.c removed, editors/info_ops.c added

11 years agoReverting changes made for laptop/two button mice - will make the changes available...
Tom Musgrove [Tue, 30 Jun 2009 20:14:53 +0000 (20:14 +0000)]
Reverting changes made for laptop/two button mice - will make the changes available as a patch.

11 years agosecond part of python2.6 upgrade in cmake, now it will copy the dlls too
Shaul Kedem [Tue, 30 Jun 2009 19:29:40 +0000 (19:29 +0000)]
second part of python2.6 upgrade in cmake, now it will copy the dlls too

11 years ago2.5
Brecht Van Lommel [Tue, 30 Jun 2009 19:20:45 +0000 (19:20 +0000)]

Image Window
* Unpack operator now works.
* Some small layout code tweaks.

Info Window Header
* Moved to python UI code.
* template_running_jobs, template_operator_search added.
* Ported external data operators: pack/unpack all, make
  paths relative/absolute, find/report missing files.

* Report RPT_INFO too, not only warnings and errors.
* Run UI handle functions after RNA and Operators.
* Rename particle system add/remove operators, to not
  include "slot", that's only there for materials because
  that's what they are called now in RNA.

11 years agoRNA
Brecht Van Lommel [Tue, 30 Jun 2009 19:10:14 +0000 (19:10 +0000)]

* Add Image.dirty boolean.
* Added Window struct, with editable Window.screen.
* Make Screen.scene editable.

11 years ago2.5 filebrowser
Andrea Weikert [Tue, 30 Jun 2009 18:29:30 +0000 (18:29 +0000)]
2.5 filebrowser
* Hide dot operator (HKEY) for theeth

11 years ago2.5 MSVC projectfiles
Andrea Weikert [Tue, 30 Jun 2009 18:20:45 +0000 (18:20 +0000)]
2.5 MSVC projectfiles
* moving projectfiles to python 2.6 to avoid recurring issues with python migration

11 years agowindows cmake uses python26 now, make sure your lib/windows is up to date (requires...
Shaul Kedem [Tue, 30 Jun 2009 18:20:12 +0000 (18:20 +0000)]
windows cmake uses python26 now, make sure your lib/windows is up to date (requires an additional svn update, in lib/windows

11 years agopython access to RNA arrays.
Campbell Barton [Tue, 30 Jun 2009 12:52:16 +0000 (12:52 +0000)]
python access to RNA arrays.

coords = array.array('f', [0.0]) * len(me.verts) * 3
m.verts.foreach_get('co', coords)

the reverse works with set also.
currently works for python buffers or sequences (slower)

Quick speed test with 1,179,654 verts.

list 0.377
array 0.032
py 10.29

list 0.184
array 0.028
py 9.79

where python was done like this...
 i= 0
 for v in m.verts:
   co =
   l[i] = co[0]; l[i+1] = co[0]; l[i+2] = co[0]

some of the error checking here needs to be cleaned up to account for different invalid bad inputs.

11 years ago2.5 file browser
Andrea Weikert [Tue, 30 Jun 2009 06:27:48 +0000 (06:27 +0000)]
2.5 file browser
* adding GPL copyright header.

11 years agoPython API
Campbell Barton [Tue, 30 Jun 2009 00:42:17 +0000 (00:42 +0000)]
Python API
Mathutils support for subclassing Vector, Quat, Euler and Matrix types.

Removed C docstrings, prefer to make sure our epydocs are well maintained rather then duplicate, vague doc strings.
Will convert scripts to detect missing docs from the BGE.

11 years ago2.5 file browser
Andrea Weikert [Mon, 29 Jun 2009 23:21:11 +0000 (23:21 +0000)]
2.5 file browser
* remove '.' and '..' from file browser list. sigh!
* removed delete buttons from automatically added bookmarks (Desktop and Documents)
Note: please check on non-Windows platforms

11 years ago2.5 file browser
Andrea Weikert [Mon, 29 Jun 2009 22:16:48 +0000 (22:16 +0000)]
2.5 file browser
* bookmark operators: add and delete bookmark
* first start at menus in file browser: Directory and Bookmarks
* Adding a bookmark via menu or via CTRL+B
* Remove a bookmark with the X button next to it.

11 years agoThis commit adds Alt-LMB as an alternative to MMB, and CTRL-ALT-LMB as an alternative...
Tom Musgrove [Mon, 29 Jun 2009 21:07:33 +0000 (21:07 +0000)]
This commit adds Alt-LMB as an alternative to MMB, and CTRL-ALT-LMB as an alternative to CTRL-MMB so that laptop users can use 2.5

11 years ago2.5 filebrowser
Andrea Weikert [Mon, 29 Jun 2009 20:23:40 +0000 (20:23 +0000)]
2.5 filebrowser
* start of filebrowser RNA
* system files, bookmarks, etc. now nicely inside panels to allow collapsing etc.
* filebrowser header now defined in

* button type for bookmarks etc. not final yet, at least should get centered still. Suggestions welcome here.

11 years agoFix compiler warning, make for body explicit.
Guillermo S. Romero [Mon, 29 Jun 2009 19:46:28 +0000 (19:46 +0000)]
Fix compiler warning, make for body explicit.

11 years ago2.5: fix for compile error after recent search menu commit.
Brecht Van Lommel [Mon, 29 Jun 2009 19:37:09 +0000 (19:37 +0000)]
2.5: fix for compile error after recent search menu commit.

11 years agoRNA
Brecht Van Lommel [Mon, 29 Jun 2009 19:15:51 +0000 (19:15 +0000)]

Implementation of RNA side of foreach_get/foreach_set,
Campbell will do python code.

Three functions for efficiently setting some property for all
items in a collection. RNA_property_collection_raw_array gives
access to the properties as an array with length, stride, and
type specified, if this is possible, i.e. not when it uses a
ListBase, or if a manual get/set function is implemented.

Two other functions take a C array pointer and get/set it
using the a collection + property name, using efficient array
access if possible, and otherwise using slower RNA iterator.


The number of type conversion required here got a bit out of
hand, it could be more efficient still if checking for more
cases, but function is already long enough.


11 years agoBGE PyAPI support for subclassing any BGE game type from python, scripters define...
Campbell Barton [Mon, 29 Jun 2009 12:06:46 +0000 (12:06 +0000)]
BGE PyAPI support for subclassing any BGE game type from python, scripters define extra functions on gameObjects.
Adding a UI to set the type on startup can be added easily.

# ----
class myPlayer(GameTypes.KX_GameObject):
  def die(self):
    # ... do stuff ...

# make an instance
player = myPlayer(gameOb) # gameOb is made invalid now.

# ----

One limitation (which could also be an advantage), is making the subclass instance will return that subclass everywhere, you cant have 2 different subclasses of the same BGE data at once.

11 years ago2.5
Ton Roosendaal [Mon, 29 Jun 2009 11:29:52 +0000 (11:29 +0000)]

Search Menu: added feature that on opening, it shows the
current ID block, and selects it. Same can be used for other
searches, just pass on pointer to active item for the search

Also fixed arrow triangle draw for search.

11 years agoNLA SoC: Insert Keyframe Operator Tweaks (Anim Editor Versions)
Joshua Leung [Mon, 29 Jun 2009 03:02:41 +0000 (03:02 +0000)]
NLA SoC: Insert Keyframe Operator Tweaks (Anim Editor Versions)

* Insert Keyframe (IKEY) operator for Graph Editor
* Renamed the DopeSheet version to make it more consistent with the other keyframing operators

11 years agoBGE Py API using python3 c/api calls. include bpy_compat.h to support py2.x
Campbell Barton [Mon, 29 Jun 2009 02:25:54 +0000 (02:25 +0000)]
BGE Py API using python3 c/api calls. include bpy_compat.h to support py2.x

11 years agoNLA SoC: Lines are now drawn on action-clip strips for indicating the timing of repeats
Joshua Leung [Mon, 29 Jun 2009 01:00:35 +0000 (01:00 +0000)]
NLA SoC: Lines are now drawn on action-clip strips for indicating the timing of repeats

11 years ago2.5
Ton Roosendaal [Sun, 28 Jun 2009 18:09:19 +0000 (18:09 +0000)]

Make include to make GE compile.

Py 2.3 doesnt compile expressions/Value.cpp btw...
Value.cpp:616: error: 'class PyObjectPlus' has no member named 'ob_type'

Probably need to wait for py 3.1 :)

11 years ago2.5
Ton Roosendaal [Sun, 28 Jun 2009 16:31:20 +0000 (16:31 +0000)]

Starting GE should initialize opengl for the 3d region.

11 years ago2.5 / RNA
Elia Sarti [Sun, 28 Jun 2009 13:41:50 +0000 (13:41 +0000)]
2.5 / RNA
Return right size for PROP_COLLECTION parameters

11 years agoPyNumberMethods needed ifdefs for python3.x and some other corrections.
Campbell Barton [Sun, 28 Jun 2009 13:27:06 +0000 (13:27 +0000)]
PyNumberMethods needed ifdefs for python3.x and some other corrections.

11 years ago2.5
Ton Roosendaal [Sun, 28 Jun 2009 12:30:50 +0000 (12:30 +0000)]

Menu usage: enabled arrow-key based browsing, especially for open and
close sublevels. Only thing missing is to prevent sublevel to open
on creating menu (like SHIFT+A now), this is design conflict in code.
(It sends fake mouse move events causing it)

Implementation note; the 'auto open sublevel' feature gets triggered
with new state var, that checks if mouse was used or not.

Also: on render in editmode, editmode result gets stored, as usual for 2.4x.

11 years agoZeroing listbase result for context data collection get when no data is found.
Elia Sarti [Sun, 28 Jun 2009 11:37:45 +0000 (11:37 +0000)]
Zeroing listbase result for context data collection get when no data is found.
Caused crash for uninitialized pointers when getting collection data for editors not supporting that member, e.g. "deselect all" operator in non-3dview editors.

11 years agoBGE Python API
Campbell Barton [Sun, 28 Jun 2009 11:22:26 +0000 (11:22 +0000)]
BGE Python API
Remove the last of the odd C++/python wrapper code from (~1998)

* Use python subclasses rather then having fake subclassing through get/set attributes calling parent types.
* PyObject getset arrays are created while initializing the types, converted from our own attribute arrays. This way python deals with subclasses and we dont have to define getattro or setattro functions for each type.
* GameObjects and Scenes no longer have attribute access to properties. only dictionary style access - ob['prop']
* remove each class's get/set/dir functions.
* remove isA() methods, can use PyObject_TypeCheck() in C and issubclass() in python.
* remove Parents[] array for each C++ class, was only used for isA() and wasnt correct in quite a few cases.
* remove PyTypeObject that was being passed as the last argument to each class (the parent classes too).

* Light and VertexProxy need to be converted to using attributes.
* memory for getset arrays is never freed, not that bad since its will only allocates once.

11 years ago2.5
Ton Roosendaal [Sun, 28 Jun 2009 09:35:37 +0000 (09:35 +0000)]


- Preview Icon for render result crashed, there was still need for a scene
  pointer to be passed on.

- Added quick fix for preventing shaded drawmode to call render while
  rendering is in progress. It crashes badly.
  Rendering while UI is alive is still in probation, most UI stuff will
  probably get blocked, with exception from inspecting buttons and using
  the image window.

11 years agoNLA SoC: NLA Mapping Cleanup
Joshua Leung [Sun, 28 Jun 2009 07:32:00 +0000 (07:32 +0000)]
NLA SoC: NLA Mapping Cleanup

While trying to fix the mapping conversions for repeat, I came across some limitations with the current (soon to be previous) mapping methods.

Now the mapping conversions should work nicely for all places that use them.

11 years ago2.5 MSVC 9 projectfiles
Andrea Weikert [Sun, 28 Jun 2009 07:26:16 +0000 (07:26 +0000)]
2.5 MSVC 9 projectfiles
* added missing include to KX_blenderhook project

11 years agoNLA SoC: Merge from 2.5 - 21179 to 21209
Joshua Leung [Sun, 28 Jun 2009 03:26:10 +0000 (03:26 +0000)]
NLA SoC: Merge from 2.5 - 21179 to 21209

11 years agoNLA SoC: Renamed NLA-Editor operators to be more in line with those in other editors
Joshua Leung [Sun, 28 Jun 2009 03:13:01 +0000 (03:13 +0000)]
NLA SoC: Renamed NLA-Editor operators to be more in line with those in other editors

11 years agoremoved un-needed hack, something weired was going on when debugging that made the...
Campbell Barton [Sun, 28 Jun 2009 02:47:49 +0000 (02:47 +0000)]
removed un-needed hack, something weired was going on when debugging that made the pointers to these functions change after initialization.

11 years agoBGE Fix for no redrawing.
Campbell Barton [Sun, 28 Jun 2009 02:37:07 +0000 (02:37 +0000)]
BGE Fix for no redrawing.
Was caused by un-initialized engine ticrate, do_versions was working on 2.4x but isnt in 2.5 so just add a zero check when getting from the world.

11 years agoBGE Redraw problem:
Campbell Barton [Sat, 27 Jun 2009 23:54:20 +0000 (23:54 +0000)]
BGE Redraw problem:
at the moment only files from blender 2.4x will display in 2.5x, compared area and window structs in both cases and dont see any differences.

This doesnt fix the problem but corrects a few things related to window drawing with the BGE,
also adds a hack because I noticed the window and area pointers in the KX_BlenderCanvas were offset after initialized, maybe need to use <static cast> ?

11 years agoCMake patch from Alexander Neundorf
Campbell Barton [Sat, 27 Jun 2009 22:48:39 +0000 (22:48 +0000)]
CMake patch from Alexander Neundorf

-under UNIX, it uses FIND_PACKAGE() to find the jpg, png and zlib libraries

-it removes the explictely listed search paths, which are already searched by
default, so it is not necessary to list them again explicitely

-it removes the include directories /usr/include
and /usr/local/include. /usr/include is used by default, all other
directories should be searched via find_package/find_file and then added to
the include directories.

-replaces the include() commands for the FindXXX.cmake
modules with the appropriate find_package(Foo) calls.
This doesn't change the behaviour, but gives more features.
E.g. you could now say
find_package(JPEG REQUIRED)
and cmake will abort with an error if the package is not found.
Also it makes it clearer what is going on.

Additionally the patch removes the line
in the Windows if-branch.
Why was this there ? This file should be included anyway under Windows when
using the MS compiler.

11 years ago2.5/Sculpt:
Nicholas Bishop [Sat, 27 Jun 2009 21:14:04 +0000 (21:14 +0000)]

Improved sculpting in perspective mode; starting a stroke on the background would sometimes result in the brush having a huge effect on the mesh. Fixed by waiting to start the stroke until the mouse moves over the model.

The fix is not quite perfect, because detection of the edge of the model is based on the depth buffer, so other things that change the depth buffer, like the grid and axis lines in the 3d view, can throw off the calculation.

11 years ago2.5/Sculpt:
Nicholas Bishop [Sat, 27 Jun 2009 17:10:19 +0000 (17:10 +0000)]

Removed a bunch of old code that was #ifdef'd out. Mostly relates to partial visibility and partial redraw. Both of these are important features, but need better design updated for 2.5.

Also removed the old (huge/ugly!) sculpt() function that is now handled by the stroke operator code.

11 years ago2.5
Ton Roosendaal [Sat, 27 Jun 2009 16:35:42 +0000 (16:35 +0000)]

Two bugfixes:
- When making 2d windows small (zero sized) the view2d data could get
  corrupted with NaN values. Clipped values correctly to 1.
- Search menu (ctrl+alt+f) had wrong color for selected text in text

11 years agoParticle ID block controls:
Janne Karhu [Sat, 27 Jun 2009 15:41:47 +0000 (15:41 +0000)]
Particle ID block controls:
* Adding/removing particle systems to an object.
* Changing of particle settings.
* Currently showing an object's particle systems in a list (like materials).

11 years agoPointcache refresh part 2
Janne Karhu [Sat, 27 Jun 2009 15:28:58 +0000 (15:28 +0000)]
Pointcache refresh part 2

* Based on what happens during simulation the cache is marked (also in cache panel, this could possibly be extended to 3d view as well) as:
- exact (not marked)
- outdated (simulation is not done completely with current settings)
- non-exact (frames were skipped during simulation)

* The parameter "cache step" effects the number of frames between saved cache frames.
- This can save a lot of memory (or disk space) if absolutely frame accurate simulation is not required.
- Speeds up the "quick caching" very much.
- Frames between cached frames are interpolated from the cached frames.
- Current default value of 10 frames works nicely with up/down-arrows (skip 10 frames forwards/backwards on timeline), but can be changed if wanted.

* The caching can work in normal or "quick" mode:
[Normal cache]
- Basic: Calculate what even happens (settings change, big frame steps etc.) and cache results, if possible try to use "cache step" when saving cache frames.
- Becomes non-exact: After larger than 1 frame steps.
- Becomes outdated: After any change effecting the simulation other than frame steps.
- Pros/cons: Freedom of doing anything and playing with particles, but exact results have to calculated from the beginning.

[Quick cache]
- Basic: Calculate simulation up to current frame automatically on changes with cache step sized jumps in simulation. With multiple "quick cached" simulations the smallest cache step is used.
- Becomes non-exact: Always from frame 1 (unless cache step = 1).
- Becomes outdated: Never.
- Pros/cons: Not very accurate, but super fast!
- Todo: Transform of any animated (non-autokeyed) object is locked! Probably needs some tinkering with anim sys overrides.

* The simulation can be run forwards or backwards even if it's cache is outdated or non-exact, the following rules apply in these situations:
- step forwards (to unknown) -> simulate from last exact frame, store result
- step backwards (to known) -> result is interpolated from existing frames, store result, clear cache forwards if current frame is after last exact frame

* "Calculate to current frame" runs the simulation from start to current frame with a frame steps of 1.
- Baking does the same, but runs the simulation all the way to the end of simulation.
- Rendering does this automatically if the simulation is outdated of non-exact, so all rendered simulations will always be updated and exact.

* Every cache panel also holds buttons to "Bake all dynamics", "Free all dynamics" and "Update all dynamics to current frame".

* Cloth simulation supports the new cache too.

11 years ago2.5
Ton Roosendaal [Sat, 27 Jun 2009 15:21:37 +0000 (15:21 +0000)]

Test commit; toolbar has 'add operator' menu in mesh editmode.
Nothing stored, freed here...

Also: removed reading .B.blend, since a much better default has
been compiled in now, prevents confusing testers who run 2.5
for the first time. :) Of course .B25.blend still works.

11 years agoUI:
Brecht Van Lommel [Sat, 27 Jun 2009 14:35:24 +0000 (14:35 +0000)]
* Fix issue with icon not being left-aligned in text field.
* Put modifier tab after data tab in buttons header.

11 years agoUI: move bone constraints panel to bone tab again.
Brecht Van Lommel [Sat, 27 Jun 2009 14:07:17 +0000 (14:07 +0000)]
UI: move bone constraints panel to bone tab again.

11 years agoRNA: move softbody flags from Object to SoftBodySettings.
Brecht Van Lommel [Sat, 27 Jun 2009 14:02:21 +0000 (14:02 +0000)]
RNA: move softbody flags from Object to SoftBodySettings.

11 years ago2.5 RNA:
Thomas Dinges [Sat, 27 Jun 2009 13:20:19 +0000 (13:20 +0000)]
2.5 RNA:

* Added more softbody properties (collision, solver) and some flags in object RNA.

11 years ago2.5
Ton Roosendaal [Sat, 27 Jun 2009 13:10:18 +0000 (13:10 +0000)]

Mesh editmode fix: Add new primitive often was on wrong location.
Viva Vazquez testing! :)

11 years agoNLA SoC: Move Strips Up/Down Operators
Joshua Leung [Sat, 27 Jun 2009 13:00:22 +0000 (13:00 +0000)]
NLA SoC: Move Strips Up/Down Operators

These operators may be temporary only, depending on if a workable solution via transform is found.
* PageUp moves strips into the track above if there's space
* PageDown moves strips into the track below if there's space

* Also fixed a button-alignment bug in the DopeSheet header

11 years ago2.5
Ton Roosendaal [Sat, 27 Jun 2009 12:41:28 +0000 (12:41 +0000)]

Bugreport; on dragging area edges, the mouse-release event was
swallowed by the panel animation handler. Thanks Pablo Vazquez
for report. :)

11 years agoNLA SoC: Recoded the strip<->global time conversion code
Joshua Leung [Sat, 27 Jun 2009 12:35:11 +0000 (12:35 +0000)]
NLA SoC: Recoded the strip<->global time conversion code

* Strip evaluation now takes into account repeats
* Increasing the number of repeats lengthens the strip, while decreasing the number of repeats does the opposite.

- inverse correction doesn't take into account repeats != 1, so tweaking strips with repeats is currently not recommended!

11 years ago2.5 RNA:
Thomas Dinges [Sat, 27 Jun 2009 11:57:50 +0000 (11:57 +0000)]
2.5 RNA:

* Started Wrapping softbody RNA.

11 years agoNLA SoC: Apply-Scale Operator now recalculates action length after scale is applied
Joshua Leung [Sat, 27 Jun 2009 04:56:20 +0000 (04:56 +0000)]
NLA SoC: Apply-Scale Operator now recalculates action length after scale is applied

11 years agoNLA SoC: Merge from 2.5 - 21146 to 21178
Joshua Leung [Sat, 27 Jun 2009 03:19:55 +0000 (03:19 +0000)]
NLA SoC: Merge from 2.5 - 21146 to 21178

11 years agoUI
Brecht Van Lommel [Sat, 27 Jun 2009 01:15:31 +0000 (01:15 +0000)]

* Search popup + autocomplete for bones, vertex groups, etc. This
  is done with layout.item_pointerR, specifying an RNA collection to
  take the items from. Used by constraints and modifiers.

* Some tests with the List template, ignore those for now..

11 years agoRNA
Brecht Van Lommel [Sat, 27 Jun 2009 01:10:39 +0000 (01:10 +0000)]

* Added support for passing collections to/from RNA functions,
  this is done using a ListBase of CollectionPointerLink, which
  is a standard ListBase link + PointerRNA.

* Added editable active uv/vcol layer to Mesh.
* Armature.bones now includes all bones, not only the ones without
* Modifier UV layer fields now are allowed to be empty, previously
  this would set the name during modifier evaluation if there was

11 years agoNLA SoC: Theme colours in old defaults files for NLA now get replaced with the nice...
Joshua Leung [Sat, 27 Jun 2009 00:40:25 +0000 (00:40 +0000)]
NLA SoC: Theme colours in old defaults files for NLA now get replaced with the nice new colours