Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/bmesh/intern/bmesh_opdefines.c
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_opdefines.c')
-rw-r--r--source/blender/bmesh/intern/bmesh_opdefines.c2644
1 files changed, 1322 insertions, 1322 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c
index 4ca8e02e94d..2114f9ebd3d 100644
--- a/source/blender/bmesh/intern/bmesh_opdefines.c
+++ b/source/blender/bmesh/intern/bmesh_opdefines.c
@@ -96,20 +96,20 @@
/* enums shared between multiple operators */
static BMO_FlagSet bmo_enum_axis_xyz[] = {
- {0, "X"},
- {1, "Y"},
- {2, "Z"},
- {0, NULL},
+ {0, "X"},
+ {1, "Y"},
+ {2, "Z"},
+ {0, NULL},
};
static BMO_FlagSet bmo_enum_falloff_type[] = {
- {SUBD_FALLOFF_SMOOTH, "SMOOTH"},
- {SUBD_FALLOFF_SPHERE, "SPHERE"},
- {SUBD_FALLOFF_ROOT, "ROOT"},
- {SUBD_FALLOFF_SHARP, "SHARP"},
- {SUBD_FALLOFF_LIN, "LINEAR"},
- {SUBD_FALLOFF_INVSQUARE, "INVERSE_SQUARE"},
- {0, NULL},
+ {SUBD_FALLOFF_SMOOTH, "SMOOTH"},
+ {SUBD_FALLOFF_SPHERE, "SPHERE"},
+ {SUBD_FALLOFF_ROOT, "ROOT"},
+ {SUBD_FALLOFF_SHARP, "SHARP"},
+ {SUBD_FALLOFF_LIN, "LINEAR"},
+ {SUBD_FALLOFF_INVSQUARE, "INVERSE_SQUARE"},
+ {0, NULL},
};
/*
@@ -118,22 +118,22 @@ static BMO_FlagSet bmo_enum_falloff_type[] = {
* Smooths vertices by using a basic vertex averaging scheme.
*/
static BMOpDefine bmo_smooth_vert_def = {
- "smooth_vert",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"factor", BMO_OP_SLOT_FLT}, /* smoothing factor */
- {"mirror_clip_x", BMO_OP_SLOT_BOOL}, /* set vertices close to the x axis before the operation to 0 */
- {"mirror_clip_y", BMO_OP_SLOT_BOOL}, /* set vertices close to the y axis before the operation to 0 */
- {"mirror_clip_z", BMO_OP_SLOT_BOOL}, /* set vertices close to the z axis before the operation to 0 */
- {"clip_dist", BMO_OP_SLOT_FLT}, /* clipping threshold for the above three slots */
- {"use_axis_x", BMO_OP_SLOT_BOOL}, /* smooth vertices along X axis */
- {"use_axis_y", BMO_OP_SLOT_BOOL}, /* smooth vertices along Y axis */
- {"use_axis_z", BMO_OP_SLOT_BOOL}, /* smooth vertices along Z axis */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_smooth_vert_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "smooth_vert",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"factor", BMO_OP_SLOT_FLT}, /* smoothing factor */
+ {"mirror_clip_x", BMO_OP_SLOT_BOOL}, /* set vertices close to the x axis before the operation to 0 */
+ {"mirror_clip_y", BMO_OP_SLOT_BOOL}, /* set vertices close to the y axis before the operation to 0 */
+ {"mirror_clip_z", BMO_OP_SLOT_BOOL}, /* set vertices close to the z axis before the operation to 0 */
+ {"clip_dist", BMO_OP_SLOT_FLT}, /* clipping threshold for the above three slots */
+ {"use_axis_x", BMO_OP_SLOT_BOOL}, /* smooth vertices along X axis */
+ {"use_axis_y", BMO_OP_SLOT_BOOL}, /* smooth vertices along Y axis */
+ {"use_axis_z", BMO_OP_SLOT_BOOL}, /* smooth vertices along Z axis */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_smooth_vert_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -143,20 +143,20 @@ static BMOpDefine bmo_smooth_vert_def = {
* Desbrun, et al. Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow.
*/
static BMOpDefine bmo_smooth_laplacian_vert_def = {
- "smooth_laplacian_vert",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"lambda_factor", BMO_OP_SLOT_FLT}, /* lambda param */
- {"lambda_border", BMO_OP_SLOT_FLT}, /* lambda param in border */
- {"use_x", BMO_OP_SLOT_BOOL}, /* Smooth object along X axis */
- {"use_y", BMO_OP_SLOT_BOOL}, /* Smooth object along Y axis */
- {"use_z", BMO_OP_SLOT_BOOL}, /* Smooth object along Z axis */
- {"preserve_volume", BMO_OP_SLOT_BOOL}, /* Apply volume preservation after smooth */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_smooth_laplacian_vert_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "smooth_laplacian_vert",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"lambda_factor", BMO_OP_SLOT_FLT}, /* lambda param */
+ {"lambda_border", BMO_OP_SLOT_FLT}, /* lambda param in border */
+ {"use_x", BMO_OP_SLOT_BOOL}, /* Smooth object along X axis */
+ {"use_y", BMO_OP_SLOT_BOOL}, /* Smooth object along Y axis */
+ {"use_z", BMO_OP_SLOT_BOOL}, /* Smooth object along Z axis */
+ {"preserve_volume", BMO_OP_SLOT_BOOL}, /* Apply volume preservation after smooth */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_smooth_laplacian_vert_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -165,15 +165,15 @@ static BMOpDefine bmo_smooth_laplacian_vert_def = {
* Computes an "outside" normal for the specified input faces.
*/
static BMOpDefine bmo_recalc_face_normals_def = {
- "recalc_face_normals",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_recalc_face_normals_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "recalc_face_normals",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_recalc_face_normals_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -182,20 +182,20 @@ static BMOpDefine bmo_recalc_face_normals_def = {
* Iteratively flatten faces.
*/
static BMOpDefine bmo_planar_faces_def = {
- "planar_faces",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input geometry. */
- {"iterations", BMO_OP_SLOT_INT}, /* Number of times to flatten faces (for when connected faces are used) */
- {"factor", BMO_OP_SLOT_FLT}, /* Influence for making planar each iteration */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output slot, computed boundary geometry. */
- {{'\0'}},
- },
- bmo_planar_faces_exec,
- (BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "planar_faces",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input geometry. */
+ {"iterations", BMO_OP_SLOT_INT}, /* Number of times to flatten faces (for when connected faces are used) */
+ {"factor", BMO_OP_SLOT_FLT}, /* Influence for making planar each iteration */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output slot, computed boundary geometry. */
+ {{'\0'}},
+ },
+ bmo_planar_faces_exec,
+ (BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -209,21 +209,21 @@ static BMOpDefine bmo_planar_faces_def = {
* otherwise it spits out faces.
*/
static BMOpDefine bmo_region_extend_def = {
- "region_extend",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
- {"use_contract", BMO_OP_SLOT_BOOL}, /* find boundary inside the regions, not outside. */
- {"use_faces", BMO_OP_SLOT_BOOL}, /* extend from faces instead of edges */
- {"use_face_step", BMO_OP_SLOT_BOOL}, /* step over connected faces */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output slot, computed boundary geometry. */
- {{'\0'}},
- },
- bmo_region_extend_exec,
- (BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "region_extend",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
+ {"use_contract", BMO_OP_SLOT_BOOL}, /* find boundary inside the regions, not outside. */
+ {"use_faces", BMO_OP_SLOT_BOOL}, /* extend from faces instead of edges */
+ {"use_face_step", BMO_OP_SLOT_BOOL}, /* step over connected faces */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output slot, computed boundary geometry. */
+ {{'\0'}},
+ },
+ bmo_region_extend_exec,
+ (BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -233,21 +233,21 @@ static BMOpDefine bmo_region_extend_def = {
* Simple example: ``[/] becomes [|] then [\]``.
*/
static BMOpDefine bmo_rotate_edges_def = {
- "rotate_edges",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate edge counter-clockwise if true, otherwise clockwise */
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* newly spun edges */
- {{'\0'}},
- },
- bmo_rotate_edges_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "rotate_edges",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate edge counter-clockwise if true, otherwise clockwise */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* newly spun edges */
+ {{'\0'}},
+ },
+ bmo_rotate_edges_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -257,16 +257,16 @@ static BMOpDefine bmo_rotate_edges_def = {
* This has the effect of flipping the normal.
*/
static BMOpDefine bmo_reverse_faces_def = {
- "reverse_faces",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"flip_multires", BMO_OP_SLOT_BOOL}, /* maintain multi-res offset */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_reverse_faces_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "reverse_faces",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"flip_multires", BMO_OP_SLOT_BOOL}, /* maintain multi-res offset */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_reverse_faces_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -276,22 +276,22 @@ static BMOpDefine bmo_reverse_faces_def = {
* This creates a 2-valence vert.
*/
static BMOpDefine bmo_bisect_edges_def = {
- "bisect_edges",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"cuts", BMO_OP_SLOT_INT}, /* number of cuts */
- {"edge_percents", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_FLT}},
- {{'\0'}},
- },
- /* slots_out */
- {{"geom_split.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* newly created vertices and edges */
- {{'\0'}},
- },
- bmo_bisect_edges_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "bisect_edges",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"cuts", BMO_OP_SLOT_INT}, /* number of cuts */
+ {"edge_percents", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_FLT}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom_split.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* newly created vertices and edges */
+ {{'\0'}},
+ },
+ bmo_bisect_edges_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -302,24 +302,24 @@ static BMOpDefine bmo_bisect_edges_def = {
* parameter (which defines the minimum distance for welding to happen).
*/
static BMOpDefine bmo_mirror_def = {
- "mirror",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix defining the mirror transformation */
- {"merge_dist", BMO_OP_SLOT_FLT}, /* maximum distance for merging. does no merging if 0. */
- {"axis", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_xyz}, /* the axis to use. */
- {"mirror_u", BMO_OP_SLOT_BOOL}, /* mirror UVs across the u axis */
- {"mirror_v", BMO_OP_SLOT_BOOL}, /* mirror UVs across the v axis */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output geometry, mirrored */
- {{'\0'}},
- },
- bmo_mirror_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "mirror",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix defining the mirror transformation */
+ {"merge_dist", BMO_OP_SLOT_FLT}, /* maximum distance for merging. does no merging if 0. */
+ {"axis", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_xyz}, /* the axis to use. */
+ {"mirror_u", BMO_OP_SLOT_BOOL}, /* mirror UVs across the u axis */
+ {"mirror_v", BMO_OP_SLOT_BOOL}, /* mirror UVs across the v axis */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output geometry, mirrored */
+ {{'\0'}},
+ },
+ bmo_mirror_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -332,19 +332,19 @@ static BMOpDefine bmo_mirror_def = {
* with vertices in that set.
*/
static BMOpDefine bmo_find_doubles_def = {
- "find_doubles",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"keep_verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* list of verts to keep */
- {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
- {{'\0'}},
- },
- /* slots_out */
- {{"targetmap.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {{'\0'}},
- },
- bmo_find_doubles_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "find_doubles",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"keep_verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* list of verts to keep */
+ {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"targetmap.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {{'\0'}},
+ },
+ bmo_find_doubles_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -354,18 +354,18 @@ static BMOpDefine bmo_find_doubles_def = {
* using the weld verts bmop.
*/
static BMOpDefine bmo_remove_doubles_def = {
- "remove_doubles",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input verts */
- {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_remove_doubles_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "remove_doubles",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input verts */
+ {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_remove_doubles_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -376,18 +376,18 @@ static BMOpDefine bmo_remove_doubles_def = {
* **verts** to one in **verts**.
*/
static BMOpDefine bmo_automerge_def = {
- "automerge",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input verts */
- {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_automerge_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "automerge",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input verts */
+ {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_automerge_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -396,18 +396,18 @@ static BMOpDefine bmo_automerge_def = {
* Collapses connected vertices
*/
static BMOpDefine bmo_collapse_def = {
- "collapse",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"uvs", BMO_OP_SLOT_BOOL}, /* also collapse UVs and such */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_collapse_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "collapse",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"uvs", BMO_OP_SLOT_BOOL}, /* also collapse UVs and such */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_collapse_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -416,15 +416,15 @@ static BMOpDefine bmo_collapse_def = {
* Merge uv/vcols at a specific vertex.
*/
static BMOpDefine bmo_pointmerge_facedata_def = {
- "pointmerge_facedata",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"vert_snap", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | (int)BMO_OP_SLOT_SUBTYPE_ELEM_IS_SINGLE}}, /* snap vertex */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_pointmerge_facedata_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "pointmerge_facedata",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"vert_snap", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | (int)BMO_OP_SLOT_SUBTYPE_ELEM_IS_SINGLE}}, /* snap vertex */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_pointmerge_facedata_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -435,14 +435,14 @@ static BMOpDefine bmo_pointmerge_facedata_def = {
* the vert_snap_to_bb_center is just too long).
*/
static BMOpDefine bmo_average_vert_facedata_def = {
- "average_vert_facedata",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_average_vert_facedata_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "average_vert_facedata",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_average_vert_facedata_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -451,18 +451,18 @@ static BMOpDefine bmo_average_vert_facedata_def = {
* Merge verts together at a point.
*/
static BMOpDefine bmo_pointmerge_def = {
- "pointmerge",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices (all verts will be merged into the first). */
- {"merge_co", BMO_OP_SLOT_VEC}, /* Position to merge at. */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_pointmerge_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "pointmerge",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices (all verts will be merged into the first). */
+ {"merge_co", BMO_OP_SLOT_VEC}, /* Position to merge at. */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_pointmerge_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -471,14 +471,14 @@ static BMOpDefine bmo_pointmerge_def = {
* Collapses connected UV vertices.
*/
static BMOpDefine bmo_collapse_uvs_def = {
- "collapse_uvs",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_collapse_uvs_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "collapse_uvs",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_collapse_uvs_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -489,18 +489,18 @@ static BMOpDefine bmo_collapse_uvs_def = {
* they weld with.
*/
static BMOpDefine bmo_weld_verts_def = {
- "weld_verts",
- /* slots_in */
- /* maps welded vertices to verts they should weld to */
- {{"targetmap", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_weld_verts_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "weld_verts",
+ /* slots_in */
+ /* maps welded vertices to verts they should weld to */
+ {{"targetmap", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_weld_verts_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -510,17 +510,17 @@ static BMOpDefine bmo_weld_verts_def = {
* for click-create-vertex.
*/
static BMOpDefine bmo_create_vert_def = {
- "create_vert",
- /* slots_in */
- {{"co", BMO_OP_SLOT_VEC}, /* the coordinate of the new vert */
- {{'\0'}},
- },
- /* slots_out */
- {{"vert.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* the new vert */
- {{'\0'}},
- },
- bmo_create_vert_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "create_vert",
+ /* slots_in */
+ {{"co", BMO_OP_SLOT_VEC}, /* the coordinate of the new vert */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"vert.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* the new vert */
+ {{'\0'}},
+ },
+ bmo_create_vert_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -530,27 +530,27 @@ static BMOpDefine bmo_create_vert_def = {
* to angle threshold and delimiters.
*/
static BMOpDefine bmo_join_triangles_def = {
- "join_triangles",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input geometry. */
- {"cmp_seam", 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_BOOL},
- {"angle_face_threshold", BMO_OP_SLOT_FLT},
- {"angle_shape_threshold", BMO_OP_SLOT_FLT},
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* joined faces */
- {{'\0'}},
- },
- bmo_join_triangles_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "join_triangles",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input geometry. */
+ {"cmp_seam", 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_BOOL},
+ {"angle_face_threshold", BMO_OP_SLOT_FLT},
+ {"angle_shape_threshold", BMO_OP_SLOT_FLT},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* joined faces */
+ {{'\0'}},
+ },
+ bmo_join_triangles_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -564,49 +564,49 @@ static BMOpDefine bmo_join_triangles_def = {
* become a wire edge.
*/
static BMOpDefine bmo_contextual_create_def = {
- "contextual_create",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry. */
- {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
- {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth to use */
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* newly-made face(s) */
- /* note, this is for stand-alone edges only, not edges which are apart of newly created faces */
- {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* newly-made edge(s) */
- {{'\0'}},
- },
- bmo_contextual_create_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "contextual_create",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry. */
+ {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
+ {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth to use */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* newly-made face(s) */
+ /* note, this is for stand-alone edges only, not edges which are apart of newly created faces */
+ {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* newly-made edge(s) */
+ {{'\0'}},
+ },
+ bmo_contextual_create_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
* Bridge edge loops with faces.
*/
static BMOpDefine bmo_bridge_loops_def = {
- "bridge_loops",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"use_pairs", BMO_OP_SLOT_BOOL},
- {"use_cyclic", BMO_OP_SLOT_BOOL},
- {"use_merge", BMO_OP_SLOT_BOOL},
- {"merge_factor", BMO_OP_SLOT_FLT},
- {"twist_offset", BMO_OP_SLOT_INT},
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
- {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* new edges */
- {{'\0'}},
- },
- bmo_bridge_loops_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "bridge_loops",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"use_pairs", BMO_OP_SLOT_BOOL},
+ {"use_cyclic", BMO_OP_SLOT_BOOL},
+ {"use_merge", BMO_OP_SLOT_BOOL},
+ {"merge_factor", BMO_OP_SLOT_FLT},
+ {"twist_offset", BMO_OP_SLOT_INT},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
+ {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* new edges */
+ {{'\0'}},
+ },
+ bmo_bridge_loops_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -615,23 +615,23 @@ static BMOpDefine bmo_bridge_loops_def = {
* Create faces defined by 2 disconnected edge loops (which share edges).
*/
static BMOpDefine bmo_grid_fill_def = {
- "grid_fill",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- /* restricts edges to groups. maps edges to integer */
- {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
- {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
- {"use_interp_simple", BMO_OP_SLOT_BOOL}, /* use simple interpolation */
- {{'\0'}},
- },
- /* slots_out */
- /* maps new faces to the group numbers they came from */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
- {{'\0'}},
- },
- bmo_grid_fill_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "grid_fill",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ /* restricts edges to groups. maps edges to integer */
+ {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
+ {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
+ {"use_interp_simple", BMO_OP_SLOT_BOOL}, /* use simple interpolation */
+ {{'\0'}},
+ },
+ /* slots_out */
+ /* maps new faces to the group numbers they came from */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
+ {{'\0'}},
+ },
+ bmo_grid_fill_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
@@ -641,20 +641,20 @@ static BMOpDefine bmo_grid_fill_def = {
* Fill boundary edges with faces, copying surrounding customdata.
*/
static BMOpDefine bmo_holes_fill_def = {
- "holes_fill",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"sides", BMO_OP_SLOT_INT}, /* number of face sides to fill */
- {{'\0'}},
- },
- /* slots_out */
- /* maps new faces to the group numbers they came from */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
- {{'\0'}},
- },
- bmo_holes_fill_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "holes_fill",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"sides", BMO_OP_SLOT_INT}, /* number of face sides to fill */
+ {{'\0'}},
+ },
+ /* slots_out */
+ /* maps new faces to the group numbers they came from */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
+ {{'\0'}},
+ },
+ bmo_holes_fill_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
@@ -664,20 +664,20 @@ static BMOpDefine bmo_holes_fill_def = {
* Fill in faces with data from adjacent faces.
*/
static BMOpDefine bmo_face_attribute_fill_def = {
- "face_attribute_fill",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"use_normals", BMO_OP_SLOT_BOOL}, /* copy face winding */
- {"use_data", BMO_OP_SLOT_BOOL}, /* copy face data */
- {{'\0'}},
- },
- /* slots_out */
- /* maps new faces to the group numbers they came from */
- {{"faces_fail.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* faces that could not be handled */
- {{'\0'}},
- },
- bmo_face_attribute_fill_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "face_attribute_fill",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"use_normals", BMO_OP_SLOT_BOOL}, /* copy face winding */
+ {"use_data", BMO_OP_SLOT_BOOL}, /* copy face data */
+ {{'\0'}},
+ },
+ /* slots_out */
+ /* maps new faces to the group numbers they came from */
+ {{"faces_fail.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* faces that could not be handled */
+ {{'\0'}},
+ },
+ bmo_face_attribute_fill_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -686,22 +686,22 @@ static BMOpDefine bmo_face_attribute_fill_def = {
* Create faces defined by one or more non overlapping edge loops.
*/
static BMOpDefine bmo_edgeloop_fill_def = {
- "edgeloop_fill",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- /* restricts edges to groups. maps edges to integer */
- {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
- {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
- {{'\0'}},
- },
- /* slots_out */
- /* maps new faces to the group numbers they came from */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
- {{'\0'}},
- },
- bmo_edgeloop_fill_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "edgeloop_fill",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ /* restricts edges to groups. maps edges to integer */
+ {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
+ {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
+ {{'\0'}},
+ },
+ /* slots_out */
+ /* maps new faces to the group numbers they came from */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
+ {{'\0'}},
+ },
+ bmo_edgeloop_fill_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
@@ -711,22 +711,22 @@ static BMOpDefine bmo_edgeloop_fill_def = {
* Create faces defined by enclosed edges.
*/
static BMOpDefine bmo_edgenet_fill_def = {
- "edgenet_fill",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
- {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
- {"sides", BMO_OP_SLOT_INT}, /* number of sides */
- {{'\0'}},
- },
- /* slots_out */
- /* maps new faces to the group numbers they came from */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
- {{'\0'}},
- },
- bmo_edgenet_fill_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "edgenet_fill",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"mat_nr", BMO_OP_SLOT_INT}, /* material to use */
+ {"use_smooth", BMO_OP_SLOT_BOOL}, /* smooth state to use */
+ {"sides", BMO_OP_SLOT_INT}, /* number of sides */
+ {{'\0'}},
+ },
+ /* slots_out */
+ /* maps new faces to the group numbers they came from */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* new faces */
+ {{'\0'}},
+ },
+ bmo_edgenet_fill_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -740,17 +740,17 @@ static BMOpDefine bmo_edgenet_fill_def = {
* shortest distance between each endpont).
*/
static BMOpDefine bmo_edgenet_prepare_def = {
- "edgenet_prepare",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* new edges */
- {{'\0'}},
- },
- bmo_edgenet_prepare_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "edgenet_prepare",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* new edges */
+ {{'\0'}},
+ },
+ bmo_edgenet_prepare_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -759,17 +759,17 @@ static BMOpDefine bmo_edgenet_prepare_def = {
* Rotate vertices around a center, using a 3x3 rotation matrix.
*/
static BMOpDefine bmo_rotate_def = {
- "rotate",
- /* slots_in */
- {{"cent", BMO_OP_SLOT_VEC}, /* center of rotation */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix defining rotation */
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_rotate_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "rotate",
+ /* slots_in */
+ {{"cent", BMO_OP_SLOT_VEC}, /* center of rotation */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix defining rotation */
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_rotate_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -778,16 +778,16 @@ static BMOpDefine bmo_rotate_def = {
* Translate vertices by an offset.
*/
static BMOpDefine bmo_translate_def = {
- "translate",
- /* slots_in */
- {{"vec", BMO_OP_SLOT_VEC}, /* translation offset */
- {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_translate_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "translate",
+ /* slots_in */
+ {{"vec", BMO_OP_SLOT_VEC}, /* translation offset */
+ {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_translate_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -796,16 +796,16 @@ static BMOpDefine bmo_translate_def = {
* Scales vertices by an offset.
*/
static BMOpDefine bmo_scale_def = {
- "scale",
- /* slots_in */
- {{"vec", BMO_OP_SLOT_VEC}, /* scale factor */
- {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_scale_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "scale",
+ /* slots_in */
+ {{"vec", BMO_OP_SLOT_VEC}, /* scale factor */
+ {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_scale_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
@@ -816,16 +816,16 @@ static BMOpDefine bmo_scale_def = {
* the vertex coordinates with the matrix.
*/
static BMOpDefine bmo_transform_def = {
- "transform",
- /* slots_in */
- {{"matrix", BMO_OP_SLOT_MAT}, /* transform matrix */
- {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_transform_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "transform",
+ /* slots_in */
+ {{"matrix", BMO_OP_SLOT_MAT}, /* transform matrix */
+ {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_transform_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -835,15 +835,15 @@ static BMOpDefine bmo_transform_def = {
* bmop.
*/
static BMOpDefine bmo_object_load_bmesh_def = {
- "object_load_bmesh",
- /* slots_in */
- {{"scene", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_SCENE}},
- {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_object_load_bmesh_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "object_load_bmesh",
+ /* slots_in */
+ {{"scene", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_SCENE}},
+ {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_object_load_bmesh_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
@@ -853,18 +853,18 @@ static BMOpDefine bmo_object_load_bmesh_def = {
* Converts a bmesh to a Mesh. This is reserved for exiting editmode.
*/
static BMOpDefine bmo_bmesh_to_mesh_def = {
- "bmesh_to_mesh",
- /* slots_in */
- {
- /* pointer to a mesh structure to fill in */
- {"mesh", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_MESH}},
- /* pointer to an object structure */
- {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_bmesh_to_mesh_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "bmesh_to_mesh",
+ /* slots_in */
+ {
+ /* pointer to a mesh structure to fill in */
+ {"mesh", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_MESH}},
+ /* pointer to an object structure */
+ {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_bmesh_to_mesh_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -874,19 +874,19 @@ static BMOpDefine bmo_bmesh_to_mesh_def = {
* reserved exclusively for entering editmode.
*/
static BMOpDefine bmo_mesh_to_bmesh_def = {
- "mesh_to_bmesh",
- /* slots_in */
- {
- /* pointer to a Mesh structure */
- {"mesh", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_MESH}},
- /* pointer to an Object structure */
- {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
- {"use_shapekey", BMO_OP_SLOT_BOOL}, /* load active shapekey coordinates into verts */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_mesh_to_bmesh_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "mesh_to_bmesh",
+ /* slots_in */
+ {
+ /* pointer to a Mesh structure */
+ {"mesh", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_MESH}},
+ /* pointer to an Object structure */
+ {"object", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_OBJECT}},
+ {"use_shapekey", BMO_OP_SLOT_BOOL}, /* load active shapekey coordinates into verts */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_mesh_to_bmesh_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -895,19 +895,19 @@ static BMOpDefine bmo_mesh_to_bmesh_def = {
* Extrudes faces individually.
*/
static BMOpDefine bmo_extrude_discrete_faces_def = {
- "extrude_discrete_faces",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
- {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}},
- },
- bmo_extrude_discrete_faces_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "extrude_discrete_faces",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
+ {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_extrude_discrete_faces_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -917,19 +917,19 @@ static BMOpDefine bmo_extrude_discrete_faces_def = {
* winged extrusion.
*/
static BMOpDefine bmo_extrude_edge_only_def = {
- "extrude_edge_only",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input vertices */
- {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
- {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output geometry */
- {{'\0'}},
- },
- bmo_extrude_edge_only_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "extrude_edge_only",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input vertices */
+ {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
+ {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* output geometry */
+ {{'\0'}},
+ },
+ bmo_extrude_edge_only_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -938,19 +938,19 @@ static BMOpDefine bmo_extrude_edge_only_def = {
* Extrudes wire edges from vertices.
*/
static BMOpDefine bmo_extrude_vert_indiv_def = {
- "extrude_vert_indiv",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output wire edges */
- {"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output vertices */
- {{'\0'}},
- },
- bmo_extrude_vert_indiv_exec,
- (BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "extrude_vert_indiv",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output wire edges */
+ {"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output vertices */
+ {{'\0'}},
+ },
+ bmo_extrude_vert_indiv_exec,
+ (BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -959,21 +959,21 @@ static BMOpDefine bmo_extrude_vert_indiv_def = {
* Split faces by adding edges that connect **verts**.
*/
static BMOpDefine bmo_connect_verts_def = {
- "connect_verts",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
- {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {"check_degenerate", BMO_OP_SLOT_BOOL}, /* prevent splits with overlaps & intersections */
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {{'\0'}},
- },
- bmo_connect_verts_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "connect_verts",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
+ {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {"check_degenerate", BMO_OP_SLOT_BOOL}, /* prevent splits with overlaps & intersections */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {{'\0'}},
+ },
+ bmo_connect_verts_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -982,20 +982,20 @@ static BMOpDefine bmo_connect_verts_def = {
* Ensures all faces are convex **faces**.
*/
static BMOpDefine bmo_connect_verts_concave_def = {
- "connect_verts_concave",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- bmo_connect_verts_concave_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "connect_verts_concave",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_connect_verts_concave_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1004,21 +1004,21 @@ static BMOpDefine bmo_connect_verts_concave_def = {
* Split faces by connecting edges along non planer **faces**.
*/
static BMOpDefine bmo_connect_verts_nonplanar_def = {
- "connect_verts_nonplanar",
- /* slots_in */
- {{"angle_limit", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
- {"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- bmo_connect_verts_nonplanar_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "connect_verts_nonplanar",
+ /* slots_in */
+ {{"angle_limit", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
+ {"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_connect_verts_nonplanar_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1027,21 +1027,21 @@ static BMOpDefine bmo_connect_verts_nonplanar_def = {
* Split faces by adding edges that connect **verts**.
*/
static BMOpDefine bmo_connect_vert_pair_def = {
- "connect_vert_pair",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
- {"verts_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
- {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {{'\0'}},
- },
- bmo_connect_vert_pair_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "connect_vert_pair",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
+ {"verts_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
+ {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {{'\0'}},
+ },
+ bmo_connect_vert_pair_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
@@ -1051,93 +1051,93 @@ static BMOpDefine bmo_connect_vert_pair_def = {
* Extrude operator (does not transform)
*/
static BMOpDefine bmo_extrude_face_region_def = {
- "extrude_face_region",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* edges and faces */
- {"edges_exclude", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_EMPTY}},
- {"use_keep_orig", BMO_OP_SLOT_BOOL}, /* keep original geometry (requires ``geom`` to include edges). */
- {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
- {"use_normal_from_adjacent", BMO_OP_SLOT_BOOL}, /* Use winding from surrounding faces instead of this region. */
- {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {{'\0'}},
- },
- bmo_extrude_face_region_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "extrude_face_region",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* edges and faces */
+ {"edges_exclude", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_EMPTY}},
+ {"use_keep_orig", BMO_OP_SLOT_BOOL}, /* keep original geometry (requires ``geom`` to include edges). */
+ {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
+ {"use_normal_from_adjacent", BMO_OP_SLOT_BOOL}, /* Use winding from surrounding faces instead of this region. */
+ {"use_select_history", BMO_OP_SLOT_BOOL}, /* pass to duplicate */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_extrude_face_region_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
* Dissolve Verts.
*/
static BMOpDefine bmo_dissolve_verts_def = {
- "dissolve_verts",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
- {"use_face_split", BMO_OP_SLOT_BOOL},
- {"use_boundary_tear", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_dissolve_verts_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "dissolve_verts",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
+ {"use_face_split", BMO_OP_SLOT_BOOL},
+ {"use_boundary_tear", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_dissolve_verts_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
* Dissolve Edges.
*/
static BMOpDefine bmo_dissolve_edges_def = {
- "dissolve_edges",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"use_verts", BMO_OP_SLOT_BOOL}, /* dissolve verts left between only 2 edges. */
- {"use_face_split", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- bmo_dissolve_edges_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "dissolve_edges",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"use_verts", BMO_OP_SLOT_BOOL}, /* dissolve verts left between only 2 edges. */
+ {"use_face_split", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_dissolve_edges_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
* Dissolve Faces.
*/
static BMOpDefine bmo_dissolve_faces_def = {
- "dissolve_faces",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {"use_verts", BMO_OP_SLOT_BOOL}, /* dissolve verts left between only 2 edges. */
- {{'\0'}},
- },
- /* slots_out */
- {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}},
- },
- bmo_dissolve_faces_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "dissolve_faces",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {"use_verts", BMO_OP_SLOT_BOOL}, /* dissolve verts left between only 2 edges. */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_dissolve_faces_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_dissolve_limit_flags[] = {
- {BMO_DELIM_NORMAL, "NORMAL"},
- {BMO_DELIM_MATERIAL, "MATERIAL"},
- {BMO_DELIM_SEAM, "SEAM"},
- {BMO_DELIM_SHARP, "SHARP"},
- {BMO_DELIM_UV, "UV"},
- {0, NULL},
+ {BMO_DELIM_NORMAL, "NORMAL"},
+ {BMO_DELIM_MATERIAL, "MATERIAL"},
+ {BMO_DELIM_SEAM, "SEAM"},
+ {BMO_DELIM_SHARP, "SHARP"},
+ {BMO_DELIM_UV, "UV"},
+ {0, NULL},
};
/*
@@ -1146,23 +1146,23 @@ static BMO_FlagSet bmo_enum_dissolve_limit_flags[] = {
* Dissolve planar faces and co-linear edges.
*/
static BMOpDefine bmo_dissolve_limit_def = {
- "dissolve_limit",
- /* slots_in */
- {{"angle_limit", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
- {"use_dissolve_boundaries", BMO_OP_SLOT_BOOL},
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
- {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"delimit", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_FLAG}, bmo_enum_dissolve_limit_flags},
- {{'\0'}},
- },
- /* slots_out */
- {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {{'\0'}}},
- bmo_dissolve_limit_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "dissolve_limit",
+ /* slots_in */
+ {{"angle_limit", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
+ {"use_dissolve_boundaries", BMO_OP_SLOT_BOOL},
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}},
+ {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"delimit", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_FLAG}, bmo_enum_dissolve_limit_flags},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"region.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {{'\0'}}},
+ bmo_dissolve_limit_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -1171,57 +1171,57 @@ static BMOpDefine bmo_dissolve_limit_def = {
* Dissolve edges with no length, faces with no area.
*/
static BMOpDefine bmo_dissolve_degenerate_def = {
- "dissolve_degenerate",
- /* slots_in */
- {{"dist", BMO_OP_SLOT_FLT}, /* minimum distance to consider degenerate */
- {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {{'\0'}},
- },
- /* slots_out */
- {{{'\0'}}},
- bmo_dissolve_degenerate_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "dissolve_degenerate",
+ /* slots_in */
+ {{"dist", BMO_OP_SLOT_FLT}, /* minimum distance to consider degenerate */
+ {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{{'\0'}}},
+ bmo_dissolve_degenerate_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_triangulate_quad_method[] = {
- {MOD_TRIANGULATE_QUAD_BEAUTY, "BEAUTY"},
- {MOD_TRIANGULATE_QUAD_FIXED, "FIXED"},
- {MOD_TRIANGULATE_QUAD_ALTERNATE, "ALTERNATE"},
- {MOD_TRIANGULATE_QUAD_SHORTEDGE, "SHORT_EDGE"},
- {0, NULL},
+ {MOD_TRIANGULATE_QUAD_BEAUTY, "BEAUTY"},
+ {MOD_TRIANGULATE_QUAD_FIXED, "FIXED"},
+ {MOD_TRIANGULATE_QUAD_ALTERNATE, "ALTERNATE"},
+ {MOD_TRIANGULATE_QUAD_SHORTEDGE, "SHORT_EDGE"},
+ {0, NULL},
};
static BMO_FlagSet bmo_enum_triangulate_ngon_method[] = {
- {MOD_TRIANGULATE_NGON_BEAUTY, "BEAUTY"},
- {MOD_TRIANGULATE_NGON_EARCLIP, "EAR_CLIP"},
- {0, NULL},
+ {MOD_TRIANGULATE_NGON_BEAUTY, "BEAUTY"},
+ {MOD_TRIANGULATE_NGON_EARCLIP, "EAR_CLIP"},
+ {0, NULL},
};
/*
* Triangulate.
*/
static BMOpDefine bmo_triangulate_def = {
- "triangulate",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {"quad_method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_triangulate_quad_method},
- {"ngon_method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_triangulate_ngon_method},
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {"face_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"face_map_double.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}}, /* duplicate faces */
- {{'\0'}},
- },
- bmo_triangulate_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "triangulate",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {"quad_method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_triangulate_quad_method},
+ {"ngon_method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_triangulate_ngon_method},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {"face_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"face_map_double.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}}, /* duplicate faces */
+ {{'\0'}},
+ },
+ bmo_triangulate_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1230,26 +1230,26 @@ static BMOpDefine bmo_triangulate_def = {
* Reduce detail in geometry containing grids.
*/
static BMOpDefine bmo_unsubdivide_def = {
- "unsubdivide",
- /* slots_in */
- {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
- {"iterations", BMO_OP_SLOT_INT},
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_unsubdivide_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "unsubdivide",
+ /* slots_in */
+ {{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
+ {"iterations", BMO_OP_SLOT_INT},
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_unsubdivide_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_subdivide_edges_quad_corner_type[] = {
- {SUBD_CORNER_STRAIGHT_CUT, "STRAIGHT_CUT"},
- {SUBD_CORNER_INNERVERT, "INNER_VERT"},
- {SUBD_CORNER_PATH, "PATH"},
- {SUBD_CORNER_FAN, "FAN"},
- {0, NULL},
+ {SUBD_CORNER_STRAIGHT_CUT, "STRAIGHT_CUT"},
+ {SUBD_CORNER_INNERVERT, "INNER_VERT"},
+ {SUBD_CORNER_PATH, "PATH"},
+ {SUBD_CORNER_FAN, "FAN"},
+ {0, NULL},
};
/*
@@ -1259,44 +1259,44 @@ static BMO_FlagSet bmo_enum_subdivide_edges_quad_corner_type[] = {
* with options for face patterns, smoothing and randomization.
*/
static BMOpDefine bmo_subdivide_edges_def = {
- "subdivide_edges",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
- {"smooth", BMO_OP_SLOT_FLT},
- {"smooth_falloff", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_falloff_type}, /* smooth falloff type */
- {"fractal", BMO_OP_SLOT_FLT},
- {"along_normal", BMO_OP_SLOT_FLT},
- {"cuts", BMO_OP_SLOT_INT},
- {"seed", BMO_OP_SLOT_INT},
- {"custom_patterns", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_INTERNAL}}, /* uses custom pointers */
- {"edge_percents", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_FLT}},
- {"quad_corner_type", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_subdivide_edges_quad_corner_type}, /* quad corner type */
- {"use_grid_fill", BMO_OP_SLOT_BOOL}, /* fill in fully-selected faces with a grid */
- {"use_single_edge", BMO_OP_SLOT_BOOL}, /* tessellate the case of one edge selected in a quad or triangle */
- {"use_only_quads", BMO_OP_SLOT_BOOL}, /* only subdivide quads (for loopcut) */
- {"use_sphere", BMO_OP_SLOT_BOOL}, /* for making new primitives only */
- {"use_smooth_even", BMO_OP_SLOT_BOOL}, /* maintain even offset when smoothing */
- {{'\0'}},
- },
- /* slots_out */
- {/* these next three can have multiple types of elements in them */
- {"geom_inner.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom_split.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* contains all output geometry */
- {{'\0'}},
- },
- bmo_subdivide_edges_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "subdivide_edges",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {"smooth", BMO_OP_SLOT_FLT},
+ {"smooth_falloff", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_falloff_type}, /* smooth falloff type */
+ {"fractal", BMO_OP_SLOT_FLT},
+ {"along_normal", BMO_OP_SLOT_FLT},
+ {"cuts", BMO_OP_SLOT_INT},
+ {"seed", BMO_OP_SLOT_INT},
+ {"custom_patterns", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_INTERNAL}}, /* uses custom pointers */
+ {"edge_percents", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_FLT}},
+ {"quad_corner_type", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_subdivide_edges_quad_corner_type}, /* quad corner type */
+ {"use_grid_fill", BMO_OP_SLOT_BOOL}, /* fill in fully-selected faces with a grid */
+ {"use_single_edge", BMO_OP_SLOT_BOOL}, /* tessellate the case of one edge selected in a quad or triangle */
+ {"use_only_quads", BMO_OP_SLOT_BOOL}, /* only subdivide quads (for loopcut) */
+ {"use_sphere", BMO_OP_SLOT_BOOL}, /* for making new primitives only */
+ {"use_smooth_even", BMO_OP_SLOT_BOOL}, /* maintain even offset when smoothing */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {/* these next three can have multiple types of elements in them */
+ {"geom_inner.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom_split.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* contains all output geometry */
+ {{'\0'}},
+ },
+ bmo_subdivide_edges_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_subdivide_edgering_interp_mode[] = {
- {SUBD_RING_INTERP_LINEAR, "LINEAR"},
- {SUBD_RING_INTERP_PATH, "PATH"},
- {SUBD_RING_INTERP_SURF, "SURFACE"},
- {0, NULL},
+ {SUBD_RING_INTERP_LINEAR, "LINEAR"},
+ {SUBD_RING_INTERP_PATH, "PATH"},
+ {SUBD_RING_INTERP_SURF, "SURFACE"},
+ {0, NULL},
};
/*
@@ -1305,23 +1305,23 @@ static BMO_FlagSet bmo_enum_subdivide_edgering_interp_mode[] = {
* Take an edge-ring, and subdivide with interpolation options.
*/
static BMOpDefine bmo_subdivide_edgering_def = {
- "subdivide_edgering",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input vertices */
- {"interp_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_subdivide_edgering_interp_mode}, /* interpolation method */
- {"smooth", BMO_OP_SLOT_FLT},
- {"cuts", BMO_OP_SLOT_INT},
- {"profile_shape", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_falloff_type}, /* profile shape type */
- {"profile_shape_factor", BMO_OP_SLOT_FLT},
- {{'\0'}},
- },
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}}},
- bmo_subdivide_edgering_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "subdivide_edgering",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input vertices */
+ {"interp_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_subdivide_edgering_interp_mode}, /* interpolation method */
+ {"smooth", BMO_OP_SLOT_FLT},
+ {"cuts", BMO_OP_SLOT_INT},
+ {"profile_shape", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_falloff_type}, /* profile shape type */
+ {"profile_shape_factor", BMO_OP_SLOT_FLT},
+ {{'\0'}},
+ },
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}}},
+ bmo_subdivide_edgering_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -1330,36 +1330,36 @@ static BMOpDefine bmo_subdivide_edgering_def = {
* Bisects the mesh by a plane (cut the mesh in half).
*/
static BMOpDefine bmo_bisect_plane_def = {
- "bisect_plane",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"dist", BMO_OP_SLOT_FLT}, /* minimum distance when testing if a vert is exactly on the plane */
- {"plane_co", BMO_OP_SLOT_VEC}, /* point on the plane */
- {"plane_no", BMO_OP_SLOT_VEC}, /* direction of the plane */
- {"use_snap_center", BMO_OP_SLOT_BOOL}, /* snap axis aligned verts to the center */
- {"clear_outer", BMO_OP_SLOT_BOOL}, /* when enabled. remove all geometry on the positive side of the plane */
- {"clear_inner", BMO_OP_SLOT_BOOL}, /* when enabled. remove all geometry on the negative side of the plane */
- {{'\0'}},
- },
- {{"geom_cut.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE}}, /* output geometry aligned with the plane (new and existing) */
- {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input and output geometry (result of cut) */
- {{'\0'}}},
- bmo_bisect_plane_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "bisect_plane",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"dist", BMO_OP_SLOT_FLT}, /* minimum distance when testing if a vert is exactly on the plane */
+ {"plane_co", BMO_OP_SLOT_VEC}, /* point on the plane */
+ {"plane_no", BMO_OP_SLOT_VEC}, /* direction of the plane */
+ {"use_snap_center", BMO_OP_SLOT_BOOL}, /* snap axis aligned verts to the center */
+ {"clear_outer", BMO_OP_SLOT_BOOL}, /* when enabled. remove all geometry on the positive side of the plane */
+ {"clear_inner", BMO_OP_SLOT_BOOL}, /* when enabled. remove all geometry on the negative side of the plane */
+ {{'\0'}},
+ },
+ {{"geom_cut.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE}}, /* output geometry aligned with the plane (new and existing) */
+ {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input and output geometry (result of cut) */
+ {{'\0'}}},
+ bmo_bisect_plane_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_delete_context[] = {
- {DEL_VERTS, "VERTS"},
- {DEL_EDGES, "EDGES"},
- {DEL_ONLYFACES, "FACES_ONLY"},
- {DEL_EDGESFACES, "EDGES_FACES"},
- {DEL_FACES, "FACES"},
- {DEL_FACES_KEEP_BOUNDARY, "FACES_KEEP_BOUNDARY"},
- {DEL_ONLYTAGGED, "TAGGED_ONLY"},
- {0, NULL},
+ {DEL_VERTS, "VERTS"},
+ {DEL_EDGES, "EDGES"},
+ {DEL_ONLYFACES, "FACES_ONLY"},
+ {DEL_EDGESFACES, "EDGES_FACES"},
+ {DEL_FACES, "FACES"},
+ {DEL_FACES_KEEP_BOUNDARY, "FACES_KEEP_BOUNDARY"},
+ {DEL_ONLYTAGGED, "TAGGED_ONLY"},
+ {0, NULL},
};
/*
@@ -1368,17 +1368,17 @@ static BMO_FlagSet bmo_enum_delete_context[] = {
* Utility operator to delete geometry.
*/
static BMOpDefine bmo_delete_def = {
- "delete",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"context", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_delete_context}, /* geometry types to delete */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_delete_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "delete",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"context", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_delete_context}, /* geometry types to delete */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_delete_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -1388,30 +1388,30 @@ static BMOpDefine bmo_delete_def = {
* optionally into a destination mesh.
*/
static BMOpDefine bmo_duplicate_def = {
- "duplicate",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- /* destination bmesh, if NULL will use current on */
- {"dest", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_BMESH}},
- {"use_select_history", BMO_OP_SLOT_BOOL},
- {"use_edge_flip_from_face", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"geom_orig.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- /* facemap maps from source faces to dupe
- * faces, and from dupe faces to source faces */
- {"vert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"edge_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"face_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"boundary_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"isovert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {{'\0'}},
- },
- bmo_duplicate_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "duplicate",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ /* destination bmesh, if NULL will use current on */
+ {"dest", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_BMESH}},
+ {"use_select_history", BMO_OP_SLOT_BOOL},
+ {"use_edge_flip_from_face", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom_orig.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ /* facemap maps from source faces to dupe
+ * faces, and from dupe faces to source faces */
+ {"vert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"edge_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"face_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"boundary_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"isovert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {{'\0'}},
+ },
+ bmo_duplicate_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1421,23 +1421,23 @@ static BMOpDefine bmo_duplicate_def = {
* optionally into a destination mesh.
*/
static BMOpDefine bmo_split_def = {
- "split",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- /* destination bmesh, if NULL will use current one */
- {"dest", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_BMESH}},
- {"use_only_faces", BMO_OP_SLOT_BOOL}, /* when enabled. don't duplicate loose verts/edges */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"boundary_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {"isovert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
- {{'\0'}},
- },
- bmo_split_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "split",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ /* destination bmesh, if NULL will use current one */
+ {"dest", BMO_OP_SLOT_PTR, {(int)BMO_OP_SLOT_SUBTYPE_PTR_BMESH}},
+ {"use_only_faces", BMO_OP_SLOT_BOOL}, /* when enabled. don't duplicate loose verts/edges */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"boundary_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {"isovert_map.out", BMO_OP_SLOT_MAPPING, {(int)BMO_OP_SLOT_SUBTYPE_MAP_ELEM}},
+ {{'\0'}},
+ },
+ bmo_split_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1447,27 +1447,27 @@ static BMOpDefine bmo_split_def = {
* rotating and possibly translating after each step
*/
static BMOpDefine bmo_spin_def = {
- "spin",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"cent", BMO_OP_SLOT_VEC}, /* rotation center */
- {"axis", BMO_OP_SLOT_VEC}, /* rotation axis */
- {"dvec", BMO_OP_SLOT_VEC}, /* translation delta per step */
- {"angle", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
- {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
- {"steps", BMO_OP_SLOT_INT}, /* number of steps */
- {"use_merge", BMO_OP_SLOT_BOOL}, /* Merge first/last when the angle is a full revolution. */
- {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
- {"use_duplicate", BMO_OP_SLOT_BOOL}, /* duplicate or extrude? */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom_last.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* result of last step */
- {{'\0'}},
- },
- bmo_spin_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "spin",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"cent", BMO_OP_SLOT_VEC}, /* rotation center */
+ {"axis", BMO_OP_SLOT_VEC}, /* rotation axis */
+ {"dvec", BMO_OP_SLOT_VEC}, /* translation delta per step */
+ {"angle", BMO_OP_SLOT_FLT}, /* total rotation angle (radians) */
+ {"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
+ {"steps", BMO_OP_SLOT_INT}, /* number of steps */
+ {"use_merge", BMO_OP_SLOT_BOOL}, /* Merge first/last when the angle is a full revolution. */
+ {"use_normal_flip", BMO_OP_SLOT_BOOL}, /* Create faces with reversed direction. */
+ {"use_duplicate", BMO_OP_SLOT_BOOL}, /* duplicate or extrude? */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom_last.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* result of last step */
+ {{'\0'}},
+ },
+ bmo_spin_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1476,15 +1476,15 @@ static BMOpDefine bmo_spin_def = {
* Cycle the loop UV's
*/
static BMOpDefine bmo_rotate_uvs_def = {
- "rotate_uvs",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate counter-clockwise if true, otherwise clockwise */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_rotate_uvs_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "rotate_uvs",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate counter-clockwise if true, otherwise clockwise */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_rotate_uvs_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -1493,14 +1493,14 @@ static BMOpDefine bmo_rotate_uvs_def = {
* Reverse the UV's
*/
static BMOpDefine bmo_reverse_uvs_def = {
- "reverse_uvs",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_reverse_uvs_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "reverse_uvs",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_reverse_uvs_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -1509,15 +1509,15 @@ static BMOpDefine bmo_reverse_uvs_def = {
* Cycle the loop colors
*/
static BMOpDefine bmo_rotate_colors_def = {
- "rotate_colors",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate counter-clockwise if true, otherwise clockwise */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_rotate_colors_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "rotate_colors",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"use_ccw", BMO_OP_SLOT_BOOL}, /* rotate counter-clockwise if true, otherwise clockwise */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_rotate_colors_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -1526,14 +1526,14 @@ static BMOpDefine bmo_rotate_colors_def = {
* Reverse the loop colors.
*/
static BMOpDefine bmo_reverse_colors_def = {
- "reverse_colors",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {{'\0'}},
- },
- {{{'\0'}}}, /* no output */
- bmo_reverse_colors_exec,
- (BMO_OPTYPE_FLAG_NOP),
+ "reverse_colors",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {{'\0'}},
+ },
+ {{{'\0'}}}, /* no output */
+ bmo_reverse_colors_exec,
+ (BMO_OPTYPE_FLAG_NOP),
};
/*
@@ -1542,22 +1542,22 @@ static BMOpDefine bmo_reverse_colors_def = {
* Disconnects faces along input edges.
*/
static BMOpDefine bmo_split_edges_def = {
- "split_edges",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- /* needed for vertex rip so we can rip only half an edge at a boundary wich would otherwise split off */
- {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* optional tag verts, use to have greater control of splits */
- {"use_verts", BMO_OP_SLOT_BOOL}, /* use 'verts' for splitting, else just find verts to split from edges */
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* old output disconnected edges */
- {{'\0'}},
- },
- bmo_split_edges_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "split_edges",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ /* needed for vertex rip so we can rip only half an edge at a boundary wich would otherwise split off */
+ {"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* optional tag verts, use to have greater control of splits */
+ {"use_verts", BMO_OP_SLOT_BOOL}, /* use 'verts' for splitting, else just find verts to split from edges */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* old output disconnected edges */
+ {{'\0'}},
+ },
+ bmo_split_edges_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1566,22 +1566,22 @@ static BMOpDefine bmo_split_edges_def = {
* Creates a grid with a variable number of subdivisions
*/
static BMOpDefine bmo_create_grid_def = {
- "create_grid",
- /* slots_in */
- {{"x_segments", BMO_OP_SLOT_INT}, /* number of x segments */
- {"y_segments", BMO_OP_SLOT_INT}, /* number of y segments */
- {"size", BMO_OP_SLOT_FLT}, /* size of the grid */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_grid_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_grid",
+ /* slots_in */
+ {{"x_segments", BMO_OP_SLOT_INT}, /* number of x segments */
+ {"y_segments", BMO_OP_SLOT_INT}, /* number of y segments */
+ {"size", BMO_OP_SLOT_FLT}, /* size of the grid */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_grid_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1590,22 +1590,22 @@ static BMOpDefine bmo_create_grid_def = {
* Creates a grid with a variable number of subdivisions
*/
static BMOpDefine bmo_create_uvsphere_def = {
- "create_uvsphere",
- /* slots_in */
- {{"u_segments", BMO_OP_SLOT_INT}, /* number of u segments */
- {"v_segments", BMO_OP_SLOT_INT}, /* number of v segment */
- {"diameter", BMO_OP_SLOT_FLT}, /* diameter */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_uvsphere_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_uvsphere",
+ /* slots_in */
+ {{"u_segments", BMO_OP_SLOT_INT}, /* number of u segments */
+ {"v_segments", BMO_OP_SLOT_INT}, /* number of v segment */
+ {"diameter", BMO_OP_SLOT_FLT}, /* diameter */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_uvsphere_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1614,21 +1614,21 @@ static BMOpDefine bmo_create_uvsphere_def = {
* Creates a grid with a variable number of subdivisions
*/
static BMOpDefine bmo_create_icosphere_def = {
- "create_icosphere",
- /* slots_in */
- {{"subdivisions", BMO_OP_SLOT_INT}, /* how many times to recursively subdivide the sphere */
- {"diameter", BMO_OP_SLOT_FLT}, /* diameter */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_icosphere_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_icosphere",
+ /* slots_in */
+ {{"subdivisions", BMO_OP_SLOT_INT}, /* how many times to recursively subdivide the sphere */
+ {"diameter", BMO_OP_SLOT_FLT}, /* diameter */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_icosphere_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1637,19 +1637,19 @@ static BMOpDefine bmo_create_icosphere_def = {
* Creates a monkey (standard blender primitive).
*/
static BMOpDefine bmo_create_monkey_def = {
- "create_monkey",
- /* slots_in */
- {{"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_monkey_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_monkey",
+ /* slots_in */
+ {{"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_monkey_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1658,48 +1658,48 @@ static BMOpDefine bmo_create_monkey_def = {
* Creates a cone with variable depth at both ends
*/
static BMOpDefine bmo_create_cone_def = {
- "create_cone",
- /* slots_in */
- {{"cap_ends", BMO_OP_SLOT_BOOL}, /* whether or not to fill in the ends with faces */
- {"cap_tris", BMO_OP_SLOT_BOOL}, /* fill ends with triangles instead of ngons */
- {"segments", BMO_OP_SLOT_INT},
- {"diameter1", BMO_OP_SLOT_FLT}, /* diameter of one end */
- {"diameter2", BMO_OP_SLOT_FLT}, /* diameter of the opposite */
- {"depth", BMO_OP_SLOT_FLT}, /* distance between ends */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_cone_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_cone",
+ /* slots_in */
+ {{"cap_ends", BMO_OP_SLOT_BOOL}, /* whether or not to fill in the ends with faces */
+ {"cap_tris", BMO_OP_SLOT_BOOL}, /* fill ends with triangles instead of ngons */
+ {"segments", BMO_OP_SLOT_INT},
+ {"diameter1", BMO_OP_SLOT_FLT}, /* diameter of one end */
+ {"diameter2", BMO_OP_SLOT_FLT}, /* diameter of the opposite */
+ {"depth", BMO_OP_SLOT_FLT}, /* distance between ends */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_cone_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
* Creates a Circle.
*/
static BMOpDefine bmo_create_circle_def = {
- "create_circle",
- /* slots_in */
- {{"cap_ends", BMO_OP_SLOT_BOOL}, /* whether or not to fill in the ends with faces */
- {"cap_tris", BMO_OP_SLOT_BOOL}, /* fill ends with triangles instead of ngons */
- {"segments", BMO_OP_SLOT_INT},
- {"radius", BMO_OP_SLOT_FLT}, /* Radius of the circle. */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_circle_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_circle",
+ /* slots_in */
+ {{"cap_ends", BMO_OP_SLOT_BOOL}, /* whether or not to fill in the ends with faces */
+ {"cap_tris", BMO_OP_SLOT_BOOL}, /* fill ends with triangles instead of ngons */
+ {"segments", BMO_OP_SLOT_INT},
+ {"radius", BMO_OP_SLOT_FLT}, /* Radius of the circle. */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_circle_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1708,43 +1708,43 @@ static BMOpDefine bmo_create_circle_def = {
* Creates a cube.
*/
static BMOpDefine bmo_create_cube_def = {
- "create_cube",
- /* slots_in */
- {{"size", BMO_OP_SLOT_FLT}, /* size of the cube */
- {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
- {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
- bmo_create_cube_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "create_cube",
+ /* slots_in */
+ {{"size", BMO_OP_SLOT_FLT}, /* size of the cube */
+ {"matrix", BMO_OP_SLOT_MAT}, /* matrix to multiply the new geometry with */
+ {"calc_uvs", BMO_OP_SLOT_BOOL}, /* calculate default UVs */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+ bmo_create_cube_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
static BMO_FlagSet bmo_enum_bevel_offset_type[] = {
- {BEVEL_AMT_OFFSET, "OFFSET"},
- {BEVEL_AMT_WIDTH, "WIDTH"},
- {BEVEL_AMT_DEPTH, "DEPTH"},
- {BEVEL_AMT_PERCENT, "PERCENT"},
- {0, NULL},
+ {BEVEL_AMT_OFFSET, "OFFSET"},
+ {BEVEL_AMT_WIDTH, "WIDTH"},
+ {BEVEL_AMT_DEPTH, "DEPTH"},
+ {BEVEL_AMT_PERCENT, "PERCENT"},
+ {0, NULL},
};
static BMO_FlagSet bmo_enum_bevel_face_strength_type[] = {
- {BEVEL_FACE_STRENGTH_NONE, "NONE"},
- {BEVEL_FACE_STRENGTH_NEW, "NEW"},
- {BEVEL_FACE_STRENGTH_AFFECTED, "AFFECTED"},
- {BEVEL_FACE_STRENGTH_ALL, "ALL"},
- {0, NULL},
+ {BEVEL_FACE_STRENGTH_NONE, "NONE"},
+ {BEVEL_FACE_STRENGTH_NEW, "NEW"},
+ {BEVEL_FACE_STRENGTH_AFFECTED, "AFFECTED"},
+ {BEVEL_FACE_STRENGTH_ALL, "ALL"},
+ {0, NULL},
};
static BMO_FlagSet bmo_enum_bevel_miter_type[] = {
- {BEVEL_MITER_SHARP, "SHARP"},
- {BEVEL_MITER_PATCH, "PATCH"},
- {BEVEL_MITER_ARC, "ARC"},
- {0, NULL},
+ {BEVEL_MITER_SHARP, "SHARP"},
+ {BEVEL_MITER_PATCH, "PATCH"},
+ {BEVEL_MITER_ARC, "ARC"},
+ {0, NULL},
};
/*
@@ -1753,49 +1753,49 @@ static BMO_FlagSet bmo_enum_bevel_miter_type[] = {
* Bevels edges and vertices
*/
static BMOpDefine bmo_bevel_def = {
- "bevel",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input edges and vertices */
- {"offset", BMO_OP_SLOT_FLT}, /* amount to offset beveled edge */
- {"offset_type", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_bevel_offset_type}, /* how to measure the offset */
- {"segments", BMO_OP_SLOT_INT}, /* number of segments in bevel */
- {"profile", BMO_OP_SLOT_FLT}, /* profile shape, 0->1 (.5=>round) */
- {"vertex_only", BMO_OP_SLOT_BOOL}, /* only bevel vertices, not edges */
- {"clamp_overlap", BMO_OP_SLOT_BOOL}, /* do not allow beveled edges/vertices to overlap each other */
- {"material", BMO_OP_SLOT_INT}, /* material for bevel faces, -1 means get from adjacent faces */
- {"loop_slide", BMO_OP_SLOT_BOOL}, /* prefer to slide along edges to having even widths */
- {"mark_seam", BMO_OP_SLOT_BOOL}, /* extend edge data to allow seams to run across bevels */
- {"mark_sharp", BMO_OP_SLOT_BOOL}, /* extend edge data to allow sharp edges to run across bevels */
- {"harden_normals", BMO_OP_SLOT_BOOL}, /* harden normals */
- {"face_strength_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
- bmo_enum_bevel_face_strength_type}, /* whether to set face strength, and which faces to set if so */
- {"miter_outer", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
- bmo_enum_bevel_miter_type}, /* outer miter kind */
- {"miter_inner", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
- bmo_enum_bevel_miter_type}, /* outer miter kind */
- {"spread", BMO_OP_SLOT_FLT}, /* amount to offset beveled edge */
- {"smoothresh", BMO_OP_SLOT_FLT}, /* for passing mesh's smoothresh, used in hardening */
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output edges */
- {"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {{'\0'}},
- },
-
- bmo_bevel_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "bevel",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input edges and vertices */
+ {"offset", BMO_OP_SLOT_FLT}, /* amount to offset beveled edge */
+ {"offset_type", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_bevel_offset_type}, /* how to measure the offset */
+ {"segments", BMO_OP_SLOT_INT}, /* number of segments in bevel */
+ {"profile", BMO_OP_SLOT_FLT}, /* profile shape, 0->1 (.5=>round) */
+ {"vertex_only", BMO_OP_SLOT_BOOL}, /* only bevel vertices, not edges */
+ {"clamp_overlap", BMO_OP_SLOT_BOOL}, /* do not allow beveled edges/vertices to overlap each other */
+ {"material", BMO_OP_SLOT_INT}, /* material for bevel faces, -1 means get from adjacent faces */
+ {"loop_slide", BMO_OP_SLOT_BOOL}, /* prefer to slide along edges to having even widths */
+ {"mark_seam", BMO_OP_SLOT_BOOL}, /* extend edge data to allow seams to run across bevels */
+ {"mark_sharp", BMO_OP_SLOT_BOOL}, /* extend edge data to allow sharp edges to run across bevels */
+ {"harden_normals", BMO_OP_SLOT_BOOL}, /* harden normals */
+ {"face_strength_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
+ bmo_enum_bevel_face_strength_type}, /* whether to set face strength, and which faces to set if so */
+ {"miter_outer", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
+ bmo_enum_bevel_miter_type}, /* outer miter kind */
+ {"miter_inner", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM},
+ bmo_enum_bevel_miter_type}, /* outer miter kind */
+ {"spread", BMO_OP_SLOT_FLT}, /* amount to offset beveled edge */
+ {"smoothresh", BMO_OP_SLOT_FLT}, /* for passing mesh's smoothresh, used in hardening */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output edges */
+ {"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {{'\0'}},
+ },
+
+ bmo_bevel_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/* no enum is defined for this */
static BMO_FlagSet bmo_enum_beautify_fill_method[] = {
- {0, "AREA"},
- {1, "ANGLE"},
- {0, NULL},
+ {0, "AREA"},
+ {1, "ANGLE"},
+ {0, NULL},
};
/*
@@ -1804,23 +1804,23 @@ static BMO_FlagSet bmo_enum_beautify_fill_method[] = {
* Rotate edges to create more evenly spaced triangles.
*/
static BMOpDefine bmo_beautify_fill_def = {
- "beautify_fill",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* edges that can be flipped */
- {"use_restrict_tag", BMO_OP_SLOT_BOOL}, /* restrict edge rotation to mixed tagged vertices */
- {"method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_beautify_fill_method}, /* method to define what is beautiful */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* new flipped faces and edges */
- {{'\0'}},
- },
- bmo_beautify_fill_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "beautify_fill",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* edges that can be flipped */
+ {"use_restrict_tag", BMO_OP_SLOT_BOOL}, /* restrict edge rotation to mixed tagged vertices */
+ {"method", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_beautify_fill_method}, /* method to define what is beautiful */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* new flipped faces and edges */
+ {{'\0'}},
+ },
+ bmo_beautify_fill_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/*
@@ -1829,22 +1829,22 @@ static BMOpDefine bmo_beautify_fill_def = {
* Fill edges with triangles
*/
static BMOpDefine bmo_triangle_fill_def = {
- "triangle_fill",
- /* slots_in */
- {{"use_beauty", BMO_OP_SLOT_BOOL},
- {"use_dissolve", BMO_OP_SLOT_BOOL}, /* dissolve resulting faces */
- {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
- {"normal", BMO_OP_SLOT_VEC}, /* optionally pass the fill normal to use */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* new faces and edges */
- {{'\0'}},
- },
- bmo_triangle_fill_exec,
- (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
- BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "triangle_fill",
+ /* slots_in */
+ {{"use_beauty", BMO_OP_SLOT_BOOL},
+ {"use_dissolve", BMO_OP_SLOT_BOOL}, /* dissolve resulting faces */
+ {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input edges */
+ {"normal", BMO_OP_SLOT_VEC}, /* optionally pass the fill normal to use */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* new faces and edges */
+ {{'\0'}},
+ },
+ bmo_triangle_fill_exec,
+ (BMO_OPTYPE_FLAG_UNTAN_MULTIRES |
+ BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1853,19 +1853,19 @@ static BMOpDefine bmo_triangle_fill_def = {
* Turns a mesh into a shell with thickness
*/
static BMOpDefine bmo_solidify_def = {
- "solidify",
- /* slots_in */
- {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"thickness", BMO_OP_SLOT_FLT},
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {{'\0'}},
- },
- bmo_solidify_face_region_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "solidify",
+ /* slots_in */
+ {{"geom", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"thickness", BMO_OP_SLOT_FLT},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_solidify_face_region_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1874,23 +1874,23 @@ static BMOpDefine bmo_solidify_def = {
* Insets individual faces.
*/
static BMOpDefine bmo_inset_individual_def = {
- "inset_individual",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"thickness", BMO_OP_SLOT_FLT},
- {"depth", BMO_OP_SLOT_FLT},
- {"use_even_offset", BMO_OP_SLOT_BOOL},
- {"use_interpolate", BMO_OP_SLOT_BOOL},
- {"use_relative_offset", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}},
- },
- bmo_inset_individual_exec,
- /* caller needs to handle BMO_OPTYPE_FLAG_SELECT_FLUSH */
- (BMO_OPTYPE_FLAG_NORMALS_CALC),
+ "inset_individual",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"thickness", BMO_OP_SLOT_FLT},
+ {"depth", BMO_OP_SLOT_FLT},
+ {"use_even_offset", BMO_OP_SLOT_BOOL},
+ {"use_interpolate", BMO_OP_SLOT_BOOL},
+ {"use_relative_offset", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_inset_individual_exec,
+ /* caller needs to handle BMO_OPTYPE_FLAG_SELECT_FLUSH */
+ (BMO_OPTYPE_FLAG_NORMALS_CALC),
};
/*
@@ -1899,27 +1899,27 @@ static BMOpDefine bmo_inset_individual_def = {
* Inset or outset face regions.
*/
static BMOpDefine bmo_inset_region_def = {
- "inset_region",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
- {"use_boundary", BMO_OP_SLOT_BOOL},
- {"use_even_offset", BMO_OP_SLOT_BOOL},
- {"use_interpolate", BMO_OP_SLOT_BOOL},
- {"use_relative_offset", BMO_OP_SLOT_BOOL},
- {"use_edge_rail", BMO_OP_SLOT_BOOL},
- {"thickness", BMO_OP_SLOT_FLT},
- {"depth", BMO_OP_SLOT_FLT},
- {"use_outset", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}},
- },
- bmo_inset_region_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "inset_region",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"faces_exclude", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}},
+ {"use_boundary", BMO_OP_SLOT_BOOL},
+ {"use_even_offset", BMO_OP_SLOT_BOOL},
+ {"use_interpolate", BMO_OP_SLOT_BOOL},
+ {"use_relative_offset", BMO_OP_SLOT_BOOL},
+ {"use_edge_rail", BMO_OP_SLOT_BOOL},
+ {"thickness", BMO_OP_SLOT_FLT},
+ {"depth", BMO_OP_SLOT_FLT},
+ {"use_outset", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_inset_region_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1928,19 +1928,19 @@ static BMOpDefine bmo_inset_region_def = {
* Creates edge loops based on simple edge-outset method.
*/
static BMOpDefine bmo_offset_edgeloops_def = {
- "offset_edgeloops",
- /* slots_in */
- {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input faces */
- {"use_cap_endpoint", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output faces */
- {{'\0'}},
- },
- bmo_offset_edgeloops_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH),
+ "offset_edgeloops",
+ /* slots_in */
+ {{"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* input faces */
+ {"use_cap_endpoint", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"edges.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_offset_edgeloops_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH),
};
/*
@@ -1949,35 +1949,35 @@ static BMOpDefine bmo_offset_edgeloops_def = {
* Makes a wire-frame copy of faces.
*/
static BMOpDefine bmo_wireframe_def = {
- "wireframe",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"thickness", BMO_OP_SLOT_FLT},
- {"offset", BMO_OP_SLOT_FLT},
- {"use_replace", BMO_OP_SLOT_BOOL},
- {"use_boundary", BMO_OP_SLOT_BOOL},
- {"use_even_offset", BMO_OP_SLOT_BOOL},
- {"use_crease", BMO_OP_SLOT_BOOL},
- {"crease_weight", BMO_OP_SLOT_FLT},
- {"use_relative_offset", BMO_OP_SLOT_BOOL},
- {"material_offset", BMO_OP_SLOT_INT},
- {{'\0'}},
- },
- /* slots_out */
- {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}},
- },
- bmo_wireframe_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "wireframe",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"thickness", BMO_OP_SLOT_FLT},
+ {"offset", BMO_OP_SLOT_FLT},
+ {"use_replace", BMO_OP_SLOT_BOOL},
+ {"use_boundary", BMO_OP_SLOT_BOOL},
+ {"use_even_offset", BMO_OP_SLOT_BOOL},
+ {"use_crease", BMO_OP_SLOT_BOOL},
+ {"crease_weight", BMO_OP_SLOT_FLT},
+ {"use_relative_offset", BMO_OP_SLOT_BOOL},
+ {"material_offset", BMO_OP_SLOT_INT},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_wireframe_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
static BMO_FlagSet bmo_enum_poke_center_mode[] = {
- {BMOP_POKE_MEDIAN_WEIGHTED, "MEAN_WEIGHTED"},
- {BMOP_POKE_MEDIAN, "MEAN"},
- {BMOP_POKE_BOUNDS, "BOUNDS"},
- {0, NULL},
+ {BMOP_POKE_MEDIAN_WEIGHTED, "MEAN_WEIGHTED"},
+ {BMOP_POKE_MEDIAN, "MEAN"},
+ {BMOP_POKE_BOUNDS, "BOUNDS"},
+ {0, NULL},
};
/*
@@ -1986,23 +1986,23 @@ static BMO_FlagSet bmo_enum_poke_center_mode[] = {
* Splits a face into a triangle fan.
*/
static BMOpDefine bmo_poke_def = {
- "poke",
- /* slots_in */
- {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
- {"offset", BMO_OP_SLOT_FLT}, /* center vertex offset along normal */
- {"center_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_poke_center_mode}, /* calculation mode for center vertex */
- {"use_relative_offset", BMO_OP_SLOT_BOOL}, /* apply offset */
- {{'\0'}},
- },
- /* slots_out */
- {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
- {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
- {{'\0'}},
- },
- bmo_poke_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "poke",
+ /* slots_in */
+ {{"faces", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* input faces */
+ {"offset", BMO_OP_SLOT_FLT}, /* center vertex offset along normal */
+ {"center_mode", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_poke_center_mode}, /* calculation mode for center vertex */
+ {"use_relative_offset", BMO_OP_SLOT_BOOL}, /* apply offset */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output verts */
+ {"faces.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_FACE}}, /* output faces */
+ {{'\0'}},
+ },
+ bmo_poke_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
#ifdef WITH_BULLET
@@ -2022,23 +2022,23 @@ static BMOpDefine bmo_poke_def = {
* that were in the input and are part of the hull.
*/
static BMOpDefine bmo_convex_hull_def = {
- "convex_hull",
- /* slots_in */
- {{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"use_existing_faces", BMO_OP_SLOT_BOOL},
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom_interior.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom_unused.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"geom_holes.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {{'\0'}},
- },
- bmo_convex_hull_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "convex_hull",
+ /* slots_in */
+ {{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"use_existing_faces", BMO_OP_SLOT_BOOL},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom_interior.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom_unused.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"geom_holes.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_convex_hull_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
#endif
@@ -2053,108 +2053,108 @@ static BMOpDefine bmo_convex_hull_def = {
* All new vertices, edges, and faces are added to the "geom.out" slot.
*/
static BMOpDefine bmo_symmetrize_def = {
- "symmetrize",
- /* slots_in */
- {{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {"direction", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_xyz}, /* axis to use */
- {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
- {{'\0'}},
- },
- /* slots_out */
- {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
- {{'\0'}},
- },
- bmo_symmetrize_exec,
- (BMO_OPTYPE_FLAG_NORMALS_CALC |
- BMO_OPTYPE_FLAG_SELECT_FLUSH |
- BMO_OPTYPE_FLAG_SELECT_VALIDATE),
+ "symmetrize",
+ /* slots_in */
+ {{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {"direction", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_xyz}, /* axis to use */
+ {"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"geom.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}},
+ {{'\0'}},
+ },
+ bmo_symmetrize_exec,
+ (BMO_OPTYPE_FLAG_NORMALS_CALC |
+ BMO_OPTYPE_FLAG_SELECT_FLUSH |
+ BMO_OPTYPE_FLAG_SELECT_VALIDATE),
};
/* clang-format on */
const BMOpDefine *bmo_opdefines[] = {
- &bmo_automerge_def,
- &bmo_average_vert_facedata_def,
- &bmo_beautify_fill_def,
- &bmo_bevel_def,
- &bmo_bisect_edges_def,
- &bmo_bmesh_to_mesh_def,
- &bmo_bridge_loops_def,
- &bmo_collapse_def,
- &bmo_collapse_uvs_def,
- &bmo_connect_verts_def,
- &bmo_connect_verts_concave_def,
- &bmo_connect_verts_nonplanar_def,
- &bmo_connect_vert_pair_def,
- &bmo_contextual_create_def,
+ &bmo_automerge_def,
+ &bmo_average_vert_facedata_def,
+ &bmo_beautify_fill_def,
+ &bmo_bevel_def,
+ &bmo_bisect_edges_def,
+ &bmo_bmesh_to_mesh_def,
+ &bmo_bridge_loops_def,
+ &bmo_collapse_def,
+ &bmo_collapse_uvs_def,
+ &bmo_connect_verts_def,
+ &bmo_connect_verts_concave_def,
+ &bmo_connect_verts_nonplanar_def,
+ &bmo_connect_vert_pair_def,
+ &bmo_contextual_create_def,
#ifdef WITH_BULLET
- &bmo_convex_hull_def,
+ &bmo_convex_hull_def,
#endif
- &bmo_create_circle_def,
- &bmo_create_cone_def,
- &bmo_create_cube_def,
- &bmo_create_grid_def,
- &bmo_create_icosphere_def,
- &bmo_create_monkey_def,
- &bmo_create_uvsphere_def,
- &bmo_create_vert_def,
- &bmo_delete_def,
- &bmo_dissolve_edges_def,
- &bmo_dissolve_faces_def,
- &bmo_dissolve_verts_def,
- &bmo_dissolve_limit_def,
- &bmo_dissolve_degenerate_def,
- &bmo_duplicate_def,
- &bmo_holes_fill_def,
- &bmo_face_attribute_fill_def,
- &bmo_offset_edgeloops_def,
- &bmo_edgeloop_fill_def,
- &bmo_edgenet_fill_def,
- &bmo_edgenet_prepare_def,
- &bmo_extrude_discrete_faces_def,
- &bmo_extrude_edge_only_def,
- &bmo_extrude_face_region_def,
- &bmo_extrude_vert_indiv_def,
- &bmo_find_doubles_def,
- &bmo_grid_fill_def,
- &bmo_inset_individual_def,
- &bmo_inset_region_def,
- &bmo_join_triangles_def,
- &bmo_mesh_to_bmesh_def,
- &bmo_mirror_def,
- &bmo_object_load_bmesh_def,
- &bmo_pointmerge_def,
- &bmo_pointmerge_facedata_def,
- &bmo_poke_def,
- &bmo_recalc_face_normals_def,
- &bmo_planar_faces_def,
- &bmo_region_extend_def,
- &bmo_remove_doubles_def,
- &bmo_reverse_colors_def,
- &bmo_reverse_faces_def,
- &bmo_reverse_uvs_def,
- &bmo_rotate_colors_def,
- &bmo_rotate_def,
- &bmo_rotate_edges_def,
- &bmo_rotate_uvs_def,
- &bmo_scale_def,
- &bmo_smooth_vert_def,
- &bmo_smooth_laplacian_vert_def,
- &bmo_solidify_def,
- &bmo_spin_def,
- &bmo_split_def,
- &bmo_split_edges_def,
- &bmo_subdivide_edges_def,
- &bmo_subdivide_edgering_def,
- &bmo_bisect_plane_def,
- &bmo_symmetrize_def,
- &bmo_transform_def,
- &bmo_translate_def,
- &bmo_triangle_fill_def,
- &bmo_triangulate_def,
- &bmo_unsubdivide_def,
- &bmo_weld_verts_def,
- &bmo_wireframe_def,
+ &bmo_create_circle_def,
+ &bmo_create_cone_def,
+ &bmo_create_cube_def,
+ &bmo_create_grid_def,
+ &bmo_create_icosphere_def,
+ &bmo_create_monkey_def,
+ &bmo_create_uvsphere_def,
+ &bmo_create_vert_def,
+ &bmo_delete_def,
+ &bmo_dissolve_edges_def,
+ &bmo_dissolve_faces_def,
+ &bmo_dissolve_verts_def,
+ &bmo_dissolve_limit_def,
+ &bmo_dissolve_degenerate_def,
+ &bmo_duplicate_def,
+ &bmo_holes_fill_def,
+ &bmo_face_attribute_fill_def,
+ &bmo_offset_edgeloops_def,
+ &bmo_edgeloop_fill_def,
+ &bmo_edgenet_fill_def,
+ &bmo_edgenet_prepare_def,
+ &bmo_extrude_discrete_faces_def,
+ &bmo_extrude_edge_only_def,
+ &bmo_extrude_face_region_def,
+ &bmo_extrude_vert_indiv_def,
+ &bmo_find_doubles_def,
+ &bmo_grid_fill_def,
+ &bmo_inset_individual_def,
+ &bmo_inset_region_def,
+ &bmo_join_triangles_def,
+ &bmo_mesh_to_bmesh_def,
+ &bmo_mirror_def,
+ &bmo_object_load_bmesh_def,
+ &bmo_pointmerge_def,
+ &bmo_pointmerge_facedata_def,
+ &bmo_poke_def,
+ &bmo_recalc_face_normals_def,
+ &bmo_planar_faces_def,
+ &bmo_region_extend_def,
+ &bmo_remove_doubles_def,
+ &bmo_reverse_colors_def,
+ &bmo_reverse_faces_def,
+ &bmo_reverse_uvs_def,
+ &bmo_rotate_colors_def,
+ &bmo_rotate_def,
+ &bmo_rotate_edges_def,
+ &bmo_rotate_uvs_def,
+ &bmo_scale_def,
+ &bmo_smooth_vert_def,
+ &bmo_smooth_laplacian_vert_def,
+ &bmo_solidify_def,
+ &bmo_spin_def,
+ &bmo_split_def,
+ &bmo_split_edges_def,
+ &bmo_subdivide_edges_def,
+ &bmo_subdivide_edgering_def,
+ &bmo_bisect_plane_def,
+ &bmo_symmetrize_def,
+ &bmo_transform_def,
+ &bmo_translate_def,
+ &bmo_triangle_fill_def,
+ &bmo_triangulate_def,
+ &bmo_unsubdivide_def,
+ &bmo_weld_verts_def,
+ &bmo_wireframe_def,
};
const int bmo_opdefines_total = ARRAY_SIZE(bmo_opdefines);