code, and also because calling operators was such a pain. The basic form of the format
is "opname %[code]", where each % matches to an argument.
The codes are fairly simple:
d - int
i - int
f - float
h[v/e/f] - all verts/edges/faces with a certain header flag.
f[v/e/f] - all verts/edges/faces with a certain flag.
For example:
EDBM_CallOpf(em, op, "dissolveverts %hv", BM_SELECT)
will call the dissolve verts operator.
The relevent functions are:
//calls a bmesh operator, doing necassary conversions and error reporting.
int EDBM_CallOpf(EditMesh *em, struct wmOperator *op, char *fmt, ...);
//execute an operator
int BMO_CallOpf(BMesh *bm, char *fmt, ...);
//initializes but doesn't execute an op.
int BMO_InitOpf(BMesh *bm, BMOperator *op, char *fmt, ...);
//vlist version of above.
int BMO_VInitOpf(BMesh *bm, BMOperator *op, char *fmt, va_list vlist);
Note this system is dependant on getting the slot codes from the argument
order. I'd like to make it better, possibly pass in slot names, but that'd
mean actually giving the slots names (which I can do, but wanted to discuss with
Briggs and others what I have now first).
also made dissolve vert bmop use the error api, and put in some code
to report it to the user in the xkey ui code.
Need to make a file in editors/mesh for client code utility functions for
bmesh, like e.g. reporting bmesh errors to the user, handling conversion
more automatically, etc.
Four new operators for Armature editmode, by Arystan D.
- Extrude (Ekey)
Extrude forked (shift-E when mirror on)
- CTRL+click extrude
- Delete selected (Xkey)
- Duplicate (shift-D)
Action Channels (for bones only) are now converted to the new Action Groups, restoring expand/collapse functionality for these, which was quite helpful.
This makes it possible to edit keyframes for material animation where no object-linked animation exists. However, this is provided that the material is linked to an object!
Bugfix in compositor: code that duplicated the nodetree and merged
viewer images back lacked handling the case when a viewer was not
set active yet.
This fixes eternal loops in compositor after removing Viewers.
Bugfix: commit of last week that moved object_handle_update() out
of the view3d code into event loop caused render to crash. This
update should not be called during render. In future it'll even
be thread-locked or better; solved by giving objects an 'owner'
for storage of updates.
This solves a lot of crashes on render.
Added more strict poll() to radial control for texture paint.
I'd advise to use wherever possible G.f checks in the polls for now,
easier to get this solved later.
* Added basic panels (Info, Drivers - where applicable, Modifiers) for editing active F-Curve/driver in Graph Editor. The buttons layouts here are really really rough, and have only got a few buttons to be sufficient for debugging purposes. Unfortunately, I don't have time to tweak these nicely now.
* Fixed indention errors with Action Groups used in Material actions
* Changing mode in the Graph Editor now recalculates colours
Ton - Currently, I've had to add a new operator to set this, since it is not possible to specify via keymaps whether the invoke or exec should be called by default for an operator.
(See corresponding mail on 2.5 mailing list for details about this)
* Ctrl-Shift select for Action Groups works again
* Clicking on a channel's data will select it, and also make it the active one in the list now
* Selecting keyframes in F-Curves will select the F-Curve channel too now (+ make it active)
View3D: background image buttons back. Again nice
to use blend or size or other sliders for live
updates. :)
Note that 'load' doesnt work yet, the operator for
image load only does space-image now.
Also note that with a built-in 4-split option, we
can also encode a way to show 3 different pics.
Useful goodies: most buttons for Image window back.
Not every button works! But what you can do:
- press Nkey to show/hide options
- use curves, with realtime updating
- image properties panel, load, browsing layers,
setting types
- paint panel
- plus new paint color picker panel! (why it wasn't
there in 2.4x is probably obvious, but now it can!)
Hrm... radial control should be added here too, and a nice
paint size cursor?
Currently, this is just used to print the 'name' of the active F-Curve in a panel for verification purposes. This is the recommended way of getting this info.
* add preliminary support for building Blender on 64bit Windows with _msvc_. The SConstruct should automatically detect if you are on a 64bit Windows and if you have that 64bit build is assumed. If you're not, 32bit build is assumed.
NOTE: this is still very much wip, so your mileage may vary. Do please report on b25 taskforce ML in case of trouble.
NOTE2: many of the libs are being linked in statically
NOTE3: hopefully I didn't break anything for other build platforms (mingw, linux, osx).
NOTE4: comes after NOTE3
Graph Editor: added region for buttons (properties), so we can
check drivers again! Works like view3d, press NKEY. No buttons
there yet though... no time anymore today, it'll require some
RNA magic probably.