Printf-style method of calling operations now take a modified format string,
authorJoseph Eagar <joeedh@gmail.com>
Wed, 4 Mar 2009 08:21:10 +0000 (08:21 +0000)
committerJoseph Eagar <joeedh@gmail.com>
Wed, 4 Mar 2009 08:21:10 +0000 (08:21 +0000)
commit2c33a51e3f8019eb6edfbe23d05b0551984188a3
tree6e230a329a11b5359cc1a54c0e5d879839004a99
parent1bc67f36d682bb4e5786dee7adfacdc844f1a539
Printf-style method of calling operations now take a modified format string,
like so:

[opname] [slotname]=%[format code]

Before it was relying on the input format codes being in the same proper
order as the slots, which seemed like a potential maintainance nightmare to
me.  Also the flags for creating buffers from bmop flags or header flags,
now support additional modifiers for combining vert/edge/face inputs.
E.g. %hfvef would accept all geometry with a header flag, and
%fef would accept edges and faces with a certain bmop flag set.

Example from the UI code:

if (!EDBM_CallOpf(em, op, "del geom=%hf context=%d", BM_SELECT, DEL_ONLYFACES))
return OPERATOR_CANCELLED;

(remember EDBM_CallOpf is the UI wrapper for this that does conversion,
 error reporting, etc).

 On todo is cleaning up/splitting bmesh_operators.h,
 since it's kindof a mesh right now.  I'm thinking of adding the slot
 names in comments next to the slot ids, but I definitely would have to
 clean up bmesh_operators.h first, or it'd just be too chaotic for me.
 BTW, the operator API should now have enough meta info to wrap with
 a scripting language, not that it matters since that's not happening till
 much much later.

 Also hopefully corrected some SConscripts, fix mostly provided by Elia Sarti,
 though I also copied some SConscripts from 2.5 (not sure if doing
 so was especially helpful).

 Finally, I refactored a few places to use the new operator calling api,
 as an example of how this is beneficial.
12 files changed:
source/blender/SConscript
source/blender/bmesh/bmesh_operators.h
source/blender/bmesh/intern/bmesh_mods.c
source/blender/bmesh/intern/bmesh_opdefines.c
source/blender/bmesh/intern/bmesh_operators.c
source/blender/bmesh/intern/bmesh_polygon.c
source/blender/bmesh/operators/extrudeops.c
source/blender/bmesh/operators/subdivideop.c
source/blender/editors/mesh/bmeshutils.c
source/blender/editors/mesh/editmesh_tools.c
source/blender/editors/mesh/mesh_intern.h
source/blender/windowmanager/SConscript