diff options
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_opdefines.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_opdefines.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c index 4b5c67c8671..b5e6d7e1f68 100644 --- a/source/blender/bmesh/intern/bmesh_opdefines.c +++ b/source/blender/bmesh/intern/bmesh_opdefines.c @@ -696,6 +696,7 @@ static BMOpDefine bmo_esubd_def = { {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, {BMO_OP_SLOT_FLT, "smooth"}, {BMO_OP_SLOT_FLT, "fractal"}, + {BMO_OP_SLOT_FLT, "along_normal"}, {BMO_OP_SLOT_INT, "numcuts"}, {BMO_OP_SLOT_INT, "seed"}, {BMO_OP_SLOT_MAPPING, "custompatterns"}, @@ -1109,6 +1110,26 @@ static BMOpDefine bmo_inset_def = { }; /* + * Wire Frame + * + * Makes a wire copy of faces. + */ +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 */}, + bmo_wireframe_exec, + 0 +}; + +/* * Vertex Slide * * Translates vertes along an edge @@ -1124,6 +1145,35 @@ static BMOpDefine bmo_vertex_slide_def = { BMO_OP_FLAG_UNTAN_MULTIRES }; +/* + * Convex Hull + * + * Builds a convex hull from the vertices in 'input'. + * + * If 'use_existing_faces' is true, the hull will not output triangles + * that are covered by a pre-existing face. + * + * All hull vertices, faces, and edges are added to 'geomout'. Any + * input elements that end up inside the hull (i.e. are not used by an + * output face) are added to the 'interior_geom' slot. The + * 'unused_geom' slot will contain all interior geometry that is + * completely unused. Lastly, 'holes_geom' contains edges and faces + * that were in the input and are part of the hull. +*/ +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 */}, + bmo_convex_hull_exec, + 0 +}; BMOpDefine *opdefines[] = { &bmo_split_def, @@ -1192,7 +1242,9 @@ BMOpDefine *opdefines[] = { &bmo_bridge_loops_def, &bmo_solidify_def, &bmo_inset_def, + &bmo_wireframe_def, &bmo_vertex_slide_def, + &bmo_convex_hull_def, }; int bmesh_total_ops = (sizeof(opdefines) / sizeof(void *)); |