From 48639af5f89e08e81cd68fce0a7138007d4ebe1d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 19 Nov 2012 14:58:31 +0000 Subject: use input and output slots for bmesh operators, needed for the python api to get return values. --- source/blender/bmesh/intern/bmesh_opdefines.c | 461 ++++++++++++++++++-------- 1 file changed, 317 insertions(+), 144 deletions(-) (limited to 'source/blender/bmesh/intern/bmesh_opdefines.c') diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c index 1700e5c47fd..539682454ea 100644 --- a/source/blender/bmesh/intern/bmesh_opdefines.c +++ b/source/blender/bmesh/intern/bmesh_opdefines.c @@ -109,6 +109,7 @@ static BMOpDefine bmo_smooth_vert_def = { {BMO_OP_SLOT_BOOL, "use_axis_z"}, /* smooth vertices along Z axis */ {0} /* null-terminating sentinel */, }, + {{0}}, /* no output */ bmo_smooth_vert_exec, 0 }; @@ -129,6 +130,7 @@ static BMOpDefine bmo_smooth_laplacian_vert_def = { {BMO_OP_SLOT_BOOL, "volume_preservation"}, //Apply volume preservation after smooth {0} /* null-terminating sentinel */, }, + {{0}}, /* no output */ bmo_smooth_laplacian_vert_exec, 0 }; @@ -145,6 +147,7 @@ static BMOpDefine bmo_recalc_face_normals_def = { {BMO_OP_SLOT_BOOL, "do_flip"}, /* internal flag, used by bmesh_rationalize_normals */ {0} /* null-terminating sentinel */, }, + {{0}}, /* no output */ bmo_recalc_face_normals_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -162,11 +165,13 @@ static BMOpDefine bmo_recalc_face_normals_def = { static BMOpDefine bmo_region_extend_def = { "region_extend", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output slot, computed boundary geometry. */ {BMO_OP_SLOT_BOOL, "constrict"}, /* find boundary inside the regions, not outside. */ {BMO_OP_SLOT_BOOL, "use_faces"}, /* extend from faces instead of edges */ {0} /* null-terminating sentinel */, }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output slot, computed boundary geometry. */ + {0} /* null-terminating sentinel */, + }, bmo_region_extend_exec, 0 }; @@ -180,10 +185,12 @@ static BMOpDefine bmo_region_extend_def = { static BMOpDefine bmo_rotate_edges_def = { "rotate_edges", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* newly spun edges */ {BMO_OP_SLOT_BOOL, "ccw"}, /* rotate edge counter-clockwise if true, othewise clockwise */ {0} /* null-terminating sentinel */, }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* newly spun edges */ + {0} /* null-terminating sentinel */, + }, bmo_rotate_edges_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -199,6 +206,7 @@ static BMOpDefine bmo_reverse_faces_def = { {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ {0} /* null-terminating sentinel */, }, + {{0}}, /* no output */ bmo_reverse_faces_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -213,7 +221,9 @@ static BMOpDefine bmo_bisect_edges_def = { "bisect_edges", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ {BMO_OP_SLOT_INT, "numcuts"}, /* number of cuts */ - {BMO_OP_SLOT_ELEMENT_BUF, "outsplit"}, /* newly created vertices and edges */ + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "splitout"}, /* newly created vertices and edges */ {0} /* null-terminating sentinel */, }, bmo_bisect_edges_exec, @@ -233,11 +243,14 @@ static BMOpDefine bmo_mirror_def = { {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix defining the mirror transformation */ {BMO_OP_SLOT_FLT, "mergedist"}, /* maximum distance for merging. does no merging if 0. */ - {BMO_OP_SLOT_ELEMENT_BUF, "newout"}, /* output geometry, mirrored */ {BMO_OP_SLOT_INT, "axis"}, /* the axis to use, 0, 1, or 2 for x, y, z */ {BMO_OP_SLOT_BOOL, "mirror_u"}, /* mirror UVs across the u axis */ {BMO_OP_SLOT_BOOL, "mirror_v"}, /* mirror UVs across the v axis */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "newout"}, /* output geometry, mirrored */ + {0} /* null-terminating sentinel */, + }, bmo_mirror_exec, 0, }; @@ -256,8 +269,11 @@ static BMOpDefine bmo_find_doubles_def = { {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ {BMO_OP_SLOT_ELEMENT_BUF, "keep_verts"}, /* list of verts to keep */ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */ - {BMO_OP_SLOT_MAPPING, "targetmapout"}, - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_MAPPING, "targetmapout"}, + {0} /* null-terminating sentinel */, + }, bmo_find_doubles_exec, 0, }; @@ -272,7 +288,9 @@ static BMOpDefine bmo_remove_doubles_def = { "remove_doubles", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input verts */ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_remove_doubles_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -288,7 +306,9 @@ static BMOpDefine bmo_automerge_def = { "automerge", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input verts */ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_automerge_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -301,7 +321,9 @@ static BMOpDefine bmo_automerge_def = { static BMOpDefine bmo_collapse_def = { "collapse", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edge */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_collapse_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -316,7 +338,9 @@ static BMOpDefine bmo_pointmerge_facedata_def = { "pointmerge_facedata", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertice */ {BMO_OP_SLOT_ELEMENT_BUF, "snapv"}, /* snap verte */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_pointmerge_facedata_exec, 0, }; @@ -331,7 +355,9 @@ static BMOpDefine bmo_pointmerge_facedata_def = { static BMOpDefine bmo_average_vert_facedata_def = { "average_vert_facedata", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertice */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_average_vert_facedata_exec, 0, }; @@ -345,7 +371,9 @@ static BMOpDefine bmo_pointmerge_def = { "pointmerge", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertice */ {BMO_OP_SLOT_VEC, "merge_co"}, - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_pointmerge_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -358,7 +386,9 @@ static BMOpDefine bmo_pointmerge_def = { static BMOpDefine bmo_collapse_uvs_def = { "collapse_uvs", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edge */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_collapse_uvs_exec, 0, }; @@ -373,7 +403,9 @@ static BMOpDefine bmo_collapse_uvs_def = { static BMOpDefine bmo_weld_verts_def = { "weld_verts", {{BMO_OP_SLOT_MAPPING, "targetmap"}, /* maps welded vertices to verts they should weld to */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_weld_verts_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -387,8 +419,11 @@ static BMOpDefine bmo_weld_verts_def = { static BMOpDefine bmo_create_vert_def = { "create_vert", {{BMO_OP_SLOT_VEC, "co"}, /* the coordinate of the new vert */ - {BMO_OP_SLOT_ELEMENT_BUF, "newvertout"}, /* the new vert */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "newvertout"}, /* the new vert */ + {0} /* null-terminating sentinel */, + }, bmo_create_vert_exec, 0, }; @@ -402,13 +437,16 @@ static BMOpDefine bmo_create_vert_def = { static BMOpDefine bmo_join_triangles_def = { "join_triangles", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input geometry. */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* joined faces */ {BMO_OP_SLOT_BOOL, "cmp_sharp"}, {BMO_OP_SLOT_BOOL, "cmp_uvs"}, {BMO_OP_SLOT_BOOL, "cmp_vcols"}, {BMO_OP_SLOT_BOOL, "cmp_materials"}, {BMO_OP_SLOT_FLT, "limit"}, - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* joined faces */ + {0} /* null-terminating sentinel */, + }, bmo_join_triangles_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -427,12 +465,15 @@ static BMOpDefine bmo_join_triangles_def = { static BMOpDefine bmo_contextual_create_def = { "contextual_create", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry. */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* newly-made face(s) */ + {BMO_OP_SLOT_INT, "mat_nr"}, /* material to use */ + {BMO_OP_SLOT_BOOL, "use_smooth"}, /* smooth to use */ + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* newly-made face(s) */ /* note, this is for stand-alone edges only, not edges which are apart of newly created faces */ {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* newly-made edge(s) */ - {BMO_OP_SLOT_INT, "mat_nr"}, /* material to use */ - {BMO_OP_SLOT_BOOL, "use_smooth"}, /* material to use */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, bmo_contextual_create_exec, BMO_OP_FLAG_UNTAN_MULTIRES, }; @@ -443,10 +484,13 @@ static BMOpDefine bmo_contextual_create_def = { static BMOpDefine bmo_bridge_loops_def = { "bridge_loops", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edge */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* new face */ {BMO_OP_SLOT_BOOL, "use_merge"}, {BMO_OP_SLOT_FLT, "merge_factor"}, - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* new faces */ + {0} /* null-terminating sentinel */, + }, bmo_bridge_loops_exec, 0, }; @@ -458,11 +502,14 @@ static BMOpDefine bmo_edgenet_fill_def = { {BMO_OP_SLOT_BOOL, "use_restrict"}, {BMO_OP_SLOT_BOOL, "use_fill_check"}, {BMO_OP_SLOT_ELEMENT_BUF, "excludefaces"}, /* list of faces to ignore for manifold check */ - {BMO_OP_SLOT_MAPPING, "faceout_groupmap"}, /* maps new faces to the group numbers they came fro */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* new face */ {BMO_OP_SLOT_INT, "mat_nr"}, /* material to use */ {BMO_OP_SLOT_BOOL, "use_smooth"}, /* material to use */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_MAPPING, "face_groupmap_out"}, /* maps new faces to the group numbers they came fro */ + {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* new face */ + {0} /* null-terminating sentinel */, + }, bmo_edgenet_fill_exec, 0, }; @@ -480,8 +527,11 @@ static BMOpDefine bmo_edgenet_fill_def = { static BMOpDefine bmo_edgenet_prepare_def = { "edgenet_prepare", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* new edges */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* new edges */ + {0} /* null-terminating sentinel */, + }, bmo_edgenet_prepare, 0, }; @@ -497,7 +547,9 @@ static BMOpDefine bmo_rotate_def = { {{BMO_OP_SLOT_VEC, "cent"}, /* center of rotation */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix defining rotation */ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_rotate_exec, 0, }; @@ -512,7 +564,9 @@ static BMOpDefine bmo_translate_def = { "translate", {{BMO_OP_SLOT_VEC, "vec"}, /* translation offset */ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_translate_exec, 0, }; @@ -526,7 +580,9 @@ static BMOpDefine bmo_scale_def = { "scale", {{BMO_OP_SLOT_VEC, "vec"}, /* scale factor */ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_scale_exec, 0, }; @@ -542,7 +598,9 @@ static BMOpDefine bmo_transform_def = { "transform", {{BMO_OP_SLOT_MAT, "mat"}, /* transform matrix */ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_transform_exec, 0, }; @@ -557,7 +615,9 @@ static BMOpDefine bmo_object_load_bmesh_def = { "object_load_bmesh", {{BMO_OP_SLOT_PTR, "scene"}, {BMO_OP_SLOT_PTR, "object"}, - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_object_load_bmesh_exec, 0, }; @@ -573,7 +633,9 @@ static BMOpDefine bmo_bmesh_to_mesh_def = { {{BMO_OP_SLOT_PTR, "mesh"}, /* pointer to a mesh structure to fill in */ {BMO_OP_SLOT_PTR, "object"}, /* pointer to an object structure */ {BMO_OP_SLOT_BOOL, "notessellation"}, /* don't calculate mfaces */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_bmesh_to_mesh_exec, 0, }; @@ -589,7 +651,9 @@ static BMOpDefine bmo_mesh_to_bmesh_def = { {{BMO_OP_SLOT_PTR, "mesh"}, /* pointer to a Mesh structure */ {BMO_OP_SLOT_PTR, "object"}, /* pointer to an Object structure */ {BMO_OP_SLOT_BOOL, "set_shapekey"}, /* load active shapekey coordinates into verts */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_mesh_to_bmesh_exec, 0 }; @@ -602,9 +666,12 @@ static BMOpDefine bmo_mesh_to_bmesh_def = { static BMOpDefine bmo_extrude_discrete_faces_def = { "extrude_discrete_faces", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ {BMO_OP_SLOT_ELEMENT_BUF, "skirtout"}, /* output skirt geometry, faces and edges */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, bmo_extrude_discrete_faces_exec, 0 }; @@ -618,8 +685,11 @@ static BMOpDefine bmo_extrude_discrete_faces_def = { static BMOpDefine bmo_extrude_edge_only_def = { "extrude_edge_only", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input vertices */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output geometry */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output geometry */ + {0} /* null-terminating sentinel */, + }, bmo_extrude_edge_only_exec, 0 }; @@ -632,9 +702,12 @@ static BMOpDefine bmo_extrude_edge_only_def = { static BMOpDefine bmo_extrude_vert_indiv_def = { "extrude_vert_indiv", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* output wire edges */ + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* output wire edges */ {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, bmo_extrude_vert_indiv_exec, 0 }; @@ -642,8 +715,11 @@ static BMOpDefine bmo_extrude_vert_indiv_def = { static BMOpDefine bmo_connect_verts_def = { "connect_verts", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, + {0} /* null-terminating sentinel */, + }, bmo_connect_verts_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -653,8 +729,11 @@ static BMOpDefine bmo_extrude_face_region_def = { {{BMO_OP_SLOT_ELEMENT_BUF, "edgefacein"}, {BMO_OP_SLOT_MAPPING, "exclude"}, {BMO_OP_SLOT_BOOL, "alwayskeeporig"}, - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, + {0} /* null-terminating sentinel */, + }, bmo_extrude_face_region_exec, 0 }; @@ -662,7 +741,9 @@ static BMOpDefine bmo_extrude_face_region_def = { static BMOpDefine bmo_dissolve_verts_def = { "dissolve_verts", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_dissolve_verts_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -670,9 +751,12 @@ static BMOpDefine bmo_dissolve_verts_def = { static BMOpDefine bmo_dissolve_edges_def = { "dissolve_edges", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, - {BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, {BMO_OP_SLOT_BOOL, "use_verts"}, /* dissolve verts left between only 2 edges. */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, + {0} /* null-terminating sentinel */, + }, bmo_dissolve_edges_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -680,8 +764,11 @@ static BMOpDefine bmo_dissolve_edges_def = { static BMOpDefine bmo_dissolve_edge_loop_def = { "dissolve_edge_loop", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, - {BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, + {0} /* null-terminating sentinel */, + }, bmo_dissolve_edgeloop_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -689,9 +776,12 @@ static BMOpDefine bmo_dissolve_edge_loop_def = { static BMOpDefine bmo_dissolve_faces_def = { "dissolve_faces", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, - {BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, {BMO_OP_SLOT_BOOL, "use_verts"}, /* dissolve verts left between only 2 edges. */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "regionout"}, + {0} /* null-terminating sentinel */, + }, bmo_dissolve_faces_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -702,7 +792,9 @@ static BMOpDefine bmo_dissolve_limit_def = { {BMO_OP_SLOT_BOOL, "use_dissolve_boundaries"}, {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, {BMO_OP_SLOT_ELEMENT_BUF, "edges"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_dissolve_limit_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -710,11 +802,14 @@ static BMOpDefine bmo_dissolve_limit_def = { static BMOpDefine bmo_triangulate_def = { "triangulate", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, - {BMO_OP_SLOT_MAPPING, "facemap"}, {BMO_OP_SLOT_BOOL, "use_beauty"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, + {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, + {BMO_OP_SLOT_MAPPING, "facemap_out"}, + {0} /* null-terminating sentinel */, + }, bmo_triangulate_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -723,7 +818,9 @@ static BMOpDefine bmo_unsubdivide_def = { "unsubdivide", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ {BMO_OP_SLOT_INT, "iterations"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_unsubdivide_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -739,16 +836,16 @@ static BMOpDefine bmo_subdivide_edges_def = { {BMO_OP_SLOT_MAPPING, "custompatterns"}, {BMO_OP_SLOT_MAPPING, "edgepercents"}, - /* these next three can have multiple types of elements in them */ - {BMO_OP_SLOT_ELEMENT_BUF, "outinner"}, - {BMO_OP_SLOT_ELEMENT_BUF, "outsplit"}, - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* contains all output geometr */ - {BMO_OP_SLOT_INT, "quadcornertype"}, /* quad corner type, see bmesh_operators.h */ {BMO_OP_SLOT_BOOL, "use_gridfill"}, /* fill in fully-selected faces with a grid */ {BMO_OP_SLOT_BOOL, "use_singleedge"}, /* tessellate the case of one edge selected in a quad or triangle */ {BMO_OP_SLOT_BOOL, "use_sphere"}, /* for making new primitives only */ - + {0} /* null-terminating sentinel */, + }, + {/* these next three can have multiple types of elements in them */ + {BMO_OP_SLOT_ELEMENT_BUF, "innerout"}, + {BMO_OP_SLOT_ELEMENT_BUF, "splitout"}, + {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* contains all output geometr */ {0} /* null-terminating sentinel */, }, bmo_subdivide_edges_exec, @@ -759,7 +856,9 @@ static BMOpDefine bmo_delete_def = { "delete", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, {BMO_OP_SLOT_INT, "context"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_delete_exec, 0 }; @@ -767,15 +866,18 @@ static BMOpDefine bmo_delete_def = { static BMOpDefine bmo_duplicate_def = { "duplicate", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, - {BMO_OP_SLOT_ELEMENT_BUF, "origout"}, + {BMO_OP_SLOT_PTR, "dest"}, /* destination bmesh, if NULL will use current on */ + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "origout"}, {BMO_OP_SLOT_ELEMENT_BUF, "newout"}, /* facemap maps from source faces to dupe * faces, and from dupe faces to source faces */ - {BMO_OP_SLOT_MAPPING, "facemap"}, - {BMO_OP_SLOT_MAPPING, "boundarymap"}, - {BMO_OP_SLOT_MAPPING, "isovertmap"}, - {BMO_OP_SLOT_PTR, "dest"}, /* destination bmesh, if NULL will use current on */ - {0} /* null-terminating sentinel */}, + {BMO_OP_SLOT_MAPPING, "facemap_out"}, + {BMO_OP_SLOT_MAPPING, "boundarymap_out"}, + {BMO_OP_SLOT_MAPPING, "isovertmap_out"}, + {0} /* null-terminating sentinel */, + }, bmo_duplicate_exec, 0 }; @@ -783,12 +885,15 @@ static BMOpDefine bmo_duplicate_def = { static BMOpDefine bmo_split_def = { "split", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, - {BMO_OP_SLOT_MAPPING, "boundarymap"}, - {BMO_OP_SLOT_MAPPING, "isovertmap"}, {BMO_OP_SLOT_PTR, "dest"}, /* destination bmesh, if NULL will use current on */ {BMO_OP_SLOT_BOOL, "use_only_faces"}, /* when enabled. don't duplicate loose verts/edges */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, + {BMO_OP_SLOT_MAPPING, "boundarymap_out"}, + {BMO_OP_SLOT_MAPPING, "isovertmap_out"}, + {0} /* null-terminating sentinel */, + }, bmo_split_exec, 0 }; @@ -802,14 +907,17 @@ static BMOpDefine bmo_split_def = { static BMOpDefine bmo_spin_def = { "spin", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, - {BMO_OP_SLOT_ELEMENT_BUF, "lastout"}, /* result of last step */ {BMO_OP_SLOT_VEC, "cent"}, /* rotation center */ {BMO_OP_SLOT_VEC, "axis"}, /* rotation axis */ {BMO_OP_SLOT_VEC, "dvec"}, /* translation delta per step */ {BMO_OP_SLOT_FLT, "ang"}, /* total rotation angle (degrees) */ {BMO_OP_SLOT_INT, "steps"}, /* number of steps */ {BMO_OP_SLOT_BOOL, "do_dupli"}, /* duplicate or extrude? */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "lastout"}, /* result of last step */ + {0} /* null-terminating sentinel */, + }, bmo_spin_exec, 0 }; @@ -823,11 +931,14 @@ static BMOpDefine bmo_spin_def = { static BMOpDefine bmo_similar_faces_def = { "similar_faces", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ {BMO_OP_SLOT_INT, "type"}, /* type of selection */ {BMO_OP_SLOT_FLT, "thresh"}, /* threshold of selection */ {BMO_OP_SLOT_INT, "compare"}, /* comparison method */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ + {0} /* null-terminating sentinel */, + }, bmo_similar_faces_exec, 0 }; @@ -840,11 +951,14 @@ static BMOpDefine bmo_similar_faces_def = { static BMOpDefine bmo_similar_edges_def = { "similar_edges", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* output edges */ {BMO_OP_SLOT_INT, "type"}, /* type of selection */ {BMO_OP_SLOT_FLT, "thresh"}, /* threshold of selection */ {BMO_OP_SLOT_INT, "compare"}, /* comparison method */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* output edges */ + {0} /* null-terminating sentinel */, + }, bmo_similar_edges_exec, 0 }; @@ -857,11 +971,14 @@ static BMOpDefine bmo_similar_edges_def = { static BMOpDefine bmo_similar_verts_def = { "similar_verts", {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */ - {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */ {BMO_OP_SLOT_INT, "type"}, /* type of selection */ {BMO_OP_SLOT_FLT, "thresh"}, /* threshold of selection */ {BMO_OP_SLOT_INT, "compare"}, /* comparison method */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */ + {0} /* null-terminating sentinel */, + }, bmo_similar_verts_exec, 0 }; @@ -874,7 +991,9 @@ static BMOpDefine bmo_rotate_uvs_def = { "rotate_uvs", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ {BMO_OP_SLOT_INT, "dir"}, /* direction */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_rotate_uvs_exec, 0 }; @@ -886,7 +1005,9 @@ static BMOpDefine bmo_rotate_uvs_def = { static BMOpDefine bmo_reverse_uvs_def = { "reverse_uvs", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_reverse_uvs_exec, 0 }; @@ -898,8 +1019,10 @@ static BMOpDefine bmo_reverse_uvs_def = { static BMOpDefine bmo_rotate_colors_def = { "rotate_colors", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {BMO_OP_SLOT_INT, "dir"}, /* direction */ - {0} /* null-terminating sentinel */}, + {BMO_OP_SLOT_INT, "dir"}, /* direction */ + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_rotate_colors_exec, 0 }; @@ -911,7 +1034,9 @@ static BMOpDefine bmo_rotate_colors_def = { static BMOpDefine bmo_reverse_colors_def = { "reverse_colors", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{0}}, /* no output */ bmo_reverse_colors_exec, 0 }; @@ -925,9 +1050,12 @@ static BMOpDefine bmo_shortest_path_def = { "shortest_path", {{BMO_OP_SLOT_ELEMENT_BUF, "startv"}, /* start vertex */ {BMO_OP_SLOT_ELEMENT_BUF, "endv"}, /* end vertex */ - {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */ {BMO_OP_SLOT_INT, "type"}, /* type of selection */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */ + {0} /* null-terminating sentinel */, + }, bmo_shortest_path_exec, 0 }; @@ -940,11 +1068,14 @@ static BMOpDefine bmo_shortest_path_def = { static BMOpDefine bmo_split_edges_def = { "split_edges", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ - {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* old output disconnected edges */ /* needed for vertex rip so we can rip only half an edge at a boundary wich would otherwise split off */ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* optional tag verts, use to have greater control of splits */ {BMO_OP_SLOT_BOOL, "use_verts"}, /* use 'verts' for splitting, else just find verts to split from edges */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* old output disconnected edges */ + {0} /* null-terminating sentinel */, + }, bmo_split_edges_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -956,12 +1087,15 @@ static BMOpDefine bmo_split_edges_def = { */ static BMOpDefine bmo_create_grid_def = { "create_grid", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_INT, "xsegments"}, /* number of x segments */ + {{BMO_OP_SLOT_INT, "xsegments"}, /* number of x segments */ {BMO_OP_SLOT_INT, "ysegments"}, /* number of y segments */ {BMO_OP_SLOT_FLT, "size"}, /* size of the grid */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_grid_exec, 0, }; @@ -973,12 +1107,15 @@ static BMOpDefine bmo_create_grid_def = { */ static BMOpDefine bmo_create_uvsphere_def = { "create_uvsphere", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_INT, "segments"}, /* number of u segments */ + {{BMO_OP_SLOT_INT, "segments"}, /* number of u segments */ {BMO_OP_SLOT_INT, "revolutions"}, /* number of v segment */ {BMO_OP_SLOT_FLT, "diameter"}, /* diameter */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_uvsphere_exec, 0, }; @@ -990,11 +1127,14 @@ static BMOpDefine bmo_create_uvsphere_def = { */ static BMOpDefine bmo_create_icosphere_def = { "create_icosphere", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_INT, "subdivisions"}, /* how many times to recursively subdivide the sphere */ + {{BMO_OP_SLOT_INT, "subdivisions"}, /* how many times to recursively subdivide the sphere */ {BMO_OP_SLOT_FLT, "diameter"}, /* diameter */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_icosphere_exec, 0, }; @@ -1006,9 +1146,12 @@ static BMOpDefine bmo_create_icosphere_def = { */ static BMOpDefine bmo_create_monkey_def = { "create_monkey", + {{BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ + {0} /* null-terminating sentinel */, + }, {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, bmo_create_monkey_exec, 0, }; @@ -1020,15 +1163,18 @@ static BMOpDefine bmo_create_monkey_def = { */ static BMOpDefine bmo_create_cone_def = { "create_cone", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */ + {{BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */ {BMO_OP_SLOT_BOOL, "cap_tris"}, /* fill ends with triangles instead of ngons */ {BMO_OP_SLOT_INT, "segments"}, {BMO_OP_SLOT_FLT, "diameter1"}, /* diameter of one end */ {BMO_OP_SLOT_FLT, "diameter2"}, /* diameter of the opposite */ {BMO_OP_SLOT_FLT, "depth"}, /* distance between ends */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_cone_exec, 0, }; @@ -1038,13 +1184,16 @@ static BMOpDefine bmo_create_cone_def = { */ static BMOpDefine bmo_create_circle_def = { "create_circle", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */ + {{BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */ {BMO_OP_SLOT_BOOL, "cap_tris"}, /* fill ends with triangles instead of ngons */ {BMO_OP_SLOT_INT, "segments"}, {BMO_OP_SLOT_FLT, "diameter"}, /* diameter of one end */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_circle_exec, 0, }; @@ -1056,15 +1205,17 @@ static BMOpDefine bmo_create_circle_def = { */ static BMOpDefine bmo_create_cube_def = { "create_cube", - {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ - {BMO_OP_SLOT_FLT, "size"}, /* size of the cube */ + {{BMO_OP_SLOT_FLT, "size"}, /* size of the cube */ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */ - {0, /* null-terminating sentinel */}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */ + {0} /* null-terminating sentinel */, + }, bmo_create_cube_exec, 0, }; -#define NEW_BEVEL 1 /* * Bevel * @@ -1072,13 +1223,15 @@ static BMOpDefine bmo_create_cube_def = { */ static BMOpDefine bmo_bevel_def = { "bevel", -#ifdef NEW_BEVEL {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input edges and vertices */ {BMO_OP_SLOT_FLT, "offset"}, /* amount to offset beveled edge */ {BMO_OP_SLOT_INT, "segments"}, /* number of segments in bevel */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ - {0} /* null-terminating sentinel */}, -#else + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ + {0} /* null-terminating sentinel */, + }, +#if 0 /* old bevel*/ {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input edges and vertices */ {BMO_OP_SLOT_ELEMENT_BUF, "face_spans"}, /* new geometry */ {BMO_OP_SLOT_ELEMENT_BUF, "face_holes"}, /* new geometry */ @@ -1088,7 +1241,8 @@ static BMOpDefine bmo_bevel_def = { * modifier uses this. We could do this as another float setting */ {BMO_OP_SLOT_INT, "lengthlayer"}, /* which PROP_FLT layer to us */ {BMO_OP_SLOT_FLT, "percent"}, /* percentage to expand beveled edge */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, #endif bmo_bevel_exec, BMO_OP_FLAG_UNTAN_MULTIRES @@ -1103,8 +1257,11 @@ static BMOpDefine bmo_beautify_fill_def = { "beautify_fill", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ {BMO_OP_SLOT_ELEMENT_BUF, "constrain_edges"}, /* edges that can't be flipped */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* new flipped faces and edges */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* new flipped faces and edges */ + {0} /* null-terminating sentinel */, + }, bmo_beautify_fill_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -1117,8 +1274,11 @@ static BMOpDefine bmo_beautify_fill_def = { static BMOpDefine bmo_triangle_fill_def = { "triangle_fill", {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* new faces and edges */ - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* new faces and edges */ + {0} /* null-terminating sentinel */, + }, bmo_triangle_fill_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -1132,8 +1292,11 @@ static BMOpDefine bmo_solidify_def = { "solidify", {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, {BMO_OP_SLOT_FLT, "thickness"}, - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, - {0}}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, + {0} /* null-terminating sentinel */, + }, bmo_solidify_face_region_exec, 0 }; @@ -1146,14 +1309,17 @@ static BMOpDefine bmo_solidify_def = { static BMOpDefine bmo_inset_def = { "inset", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ {BMO_OP_SLOT_BOOL, "use_boundary"}, {BMO_OP_SLOT_BOOL, "use_even_offset"}, {BMO_OP_SLOT_BOOL, "use_relative_offset"}, {BMO_OP_SLOT_FLT, "thickness"}, {BMO_OP_SLOT_FLT, "depth"}, {BMO_OP_SLOT_BOOL, "use_outset"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ + {0} /* null-terminating sentinel */, + }, bmo_inset_exec, 0 }; @@ -1166,14 +1332,17 @@ static BMOpDefine bmo_inset_def = { static BMOpDefine bmo_wireframe_def = { "wireframe", {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */ - {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ {BMO_OP_SLOT_BOOL, "use_boundary"}, {BMO_OP_SLOT_BOOL, "use_even_offset"}, {BMO_OP_SLOT_BOOL, "use_crease"}, {BMO_OP_SLOT_FLT, "thickness"}, {BMO_OP_SLOT_BOOL, "use_relative_offset"}, {BMO_OP_SLOT_FLT, "depth"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */ + {0} /* null-terminating sentinel */, + }, bmo_wireframe_exec, 0 }; @@ -1187,9 +1356,12 @@ static BMOpDefine bmo_slide_vert_def = { "slide_vert", {{BMO_OP_SLOT_ELEMENT_BUF, "vert"}, {BMO_OP_SLOT_ELEMENT_BUF, "edge"}, - {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, {BMO_OP_SLOT_FLT, "distance_t"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, + {0} /* null-terminating sentinel */, + }, bmo_slide_vert_exec, BMO_OP_FLAG_UNTAN_MULTIRES }; @@ -1214,13 +1386,14 @@ static BMOpDefine bmo_convex_hull_def = { "convex_hull", {{BMO_OP_SLOT_ELEMENT_BUF, "input"}, {BMO_OP_SLOT_BOOL, "use_existing_faces"}, - - /* Outputs */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, - {BMO_OP_SLOT_ELEMENT_BUF, "interior_geom"}, - {BMO_OP_SLOT_ELEMENT_BUF, "unused_geom"}, - {BMO_OP_SLOT_ELEMENT_BUF, "holes_geom"}, - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, + {BMO_OP_SLOT_ELEMENT_BUF, "interior_geom_out"}, + {BMO_OP_SLOT_ELEMENT_BUF, "unused_geom_out"}, + {BMO_OP_SLOT_ELEMENT_BUF, "holes_geom_out"}, + {0} /* null-terminating sentinel */, + }, bmo_convex_hull_exec, 0 }; @@ -1240,11 +1413,11 @@ static BMOpDefine bmo_symmetrize_def = { "symmetrize", {{BMO_OP_SLOT_ELEMENT_BUF, "input"}, {BMO_OP_SLOT_INT, "direction"}, - - /* Outputs */ - {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, - - {0} /* null-terminating sentinel */}, + {0} /* null-terminating sentinel */, + }, + {{BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, + {0} /* null-terminating sentinel */, + }, bmo_symmetrize_exec, 0 }; -- cgit v1.2.3