Blender V4.3
bmesh_operators.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11/* See comments in `intern/bmesh_opdefines.cc` for documentation of specific operators. */
12
13/*--------defines/enumerations for specific operators-------*/
14
15/* Quad `innervert` values. */
16enum {
21};
22
23/* aligned with PROP_SMOOTH and friends */
24enum {
30 SUBD_FALLOFF_INVSQUARE = 7, /* matching PROP_INVSQUARE */
31};
32
33enum {
38};
39
40/* subdivide_edgering */
41enum {
42 /* just subdiv */
44
45 /* single bezier spline - curve follows bezier rotation */
47
48 /* beziers based on adjacent faces (fallback to tangent) */
50};
51
52/* similar face selection slot values */
53enum {
62};
63
64/* similar edge selection slot values */
65enum {
75};
76
77/* similar vertex selection slot values */
78enum {
84};
85
86/* Poke face center calculation */
87enum {
91};
92
93/* Bevel offset_type slot values */
94enum {
100};
101
102/* Bevel profile type */
103enum {
106};
107
108/* Bevel face_strength_mode values: should match face_str mode enum in DNA_modifier_types.h */
109enum {
114};
115
116/* Bevel miter slot values */
117enum {
121};
122
123/* Bevel vertex mesh creation methods */
124enum {
127};
128
129/* Bevel affect option. */
130enum {
133};
134
135/* Normal Face Strength values */
136enum {
140};
141
142extern const BMOpDefine *bmo_opdefines[];
143extern const int bmo_opdefines_total;
144
145/*------specific operator helper functions-------*/
147 char edge_hflag,
148 float smooth,
149 short smooth_falloff,
150 bool use_smooth_even,
151 float fractal,
152 float along_normal,
153 int numcuts,
154 int seltype,
155 int cornertype,
156 short use_single_edge,
157 short use_grid_fill,
158 short use_only_quads,
159 int seed);
160
170 BMesh *bm, uint x_segments, uint y_segments, short oflag, int cd_loop_uv_offset);
177void BM_mesh_calc_uvs_sphere(BMesh *bm, short oflag, int cd_loop_uv_offset);
187 BMesh *bm, float mat[4][4], float radius, short oflag, int cd_loop_uv_offset);
200 float mat[4][4],
201 float radius_top,
202 float radius_bottom,
203 int segments,
204 bool cap_ends,
205 short oflag,
206 int cd_loop_uv_offset);
216void BM_mesh_calc_uvs_cube(BMesh *bm, short oflag);
217
unsigned int uint
ATTR_WARN_UNUSED_RESULT BMesh * bm
ATTR_WARN_UNUSED_RESULT const BMFlagLayer const short oflag
@ BEVEL_VMESH_ADJ
@ BEVEL_VMESH_CUTOFF
@ SUBD_FALLOFF_SHARP
@ SUBD_FALLOFF_SMOOTH
@ SUBD_FALLOFF_INVSQUARE
@ SUBD_FALLOFF_SPHERE
@ SUBD_FALLOFF_LIN
@ SUBD_FALLOFF_ROOT
@ SUBD_CORNER_FAN
@ SUBD_CORNER_STRAIGHT_CUT
@ SUBD_CORNER_PATH
@ SUBD_CORNER_INNERVERT
void BM_mesh_calc_uvs_sphere(BMesh *bm, short oflag, int cd_loop_uv_offset)
void BM_mesh_esubdivide(BMesh *bm, char edge_hflag, float smooth, short smooth_falloff, bool use_smooth_even, float fractal, float along_normal, int numcuts, int seltype, int cornertype, short use_single_edge, short use_grid_fill, short use_only_quads, int seed)
@ SIMFACE_MATERIAL
@ SIMFACE_FREESTYLE
@ SIMFACE_AREA
@ SIMFACE_PERIMETER
@ SIMFACE_NORMAL
@ SIMFACE_SMOOTH
@ SIMFACE_COPLANAR
@ SIMFACE_SIDES
@ SUBD_RING_INTERP_SURF
@ SUBD_RING_INTERP_PATH
@ SUBD_RING_INTERP_LINEAR
void BM_mesh_calc_uvs_cube(BMesh *bm, short oflag)
@ SIMEDGE_FACE_ANGLE
@ SIMEDGE_FACE
@ SIMEDGE_SHARP
@ SIMEDGE_DIR
@ SIMEDGE_BEVEL
@ SIMEDGE_FREESTYLE
@ SIMEDGE_CREASE
@ SIMEDGE_LENGTH
@ SIMEDGE_SEAM
@ BEVEL_AMT_WIDTH
@ BEVEL_AMT_ABSOLUTE
@ BEVEL_AMT_PERCENT
@ BEVEL_AMT_OFFSET
@ BEVEL_AMT_DEPTH
@ BEVEL_MITER_PATCH
@ BEVEL_MITER_SHARP
@ BEVEL_MITER_ARC
@ SUBDIV_SELECT_ORIG
@ SUBDIV_SELECT_INNER
@ SUBDIV_SELECT_LOOPCUT
@ SUBDIV_SELECT_NONE
@ BEVEL_PROFILE_SUPERELLIPSE
@ BEVEL_PROFILE_CUSTOM
@ SIMVERT_VGROUP
@ SIMVERT_FACE
@ SIMVERT_EDGE
@ SIMVERT_NORMAL
@ SIMVERT_CREASE
void BM_mesh_calc_uvs_circle(BMesh *bm, float mat[4][4], float radius, short oflag, int cd_loop_uv_offset)
const int bmo_opdefines_total
const BMOpDefine * bmo_opdefines[]
void BM_mesh_calc_uvs_cone(BMesh *bm, float mat[4][4], float radius_top, float radius_bottom, int segments, bool cap_ends, short oflag, int cd_loop_uv_offset)
@ BMOP_POKE_MEDIAN_WEIGHTED
@ BMOP_POKE_BOUNDS
@ BMOP_POKE_MEDIAN
@ FACE_STRENGTH_STRONG
@ FACE_STRENGTH_WEAK
@ FACE_STRENGTH_MEDIUM
void BM_mesh_calc_uvs_grid(BMesh *bm, uint x_segments, uint y_segments, short oflag, int cd_loop_uv_offset)
@ BEVEL_FACE_STRENGTH_NONE
@ BEVEL_FACE_STRENGTH_AFFECTED
@ BEVEL_FACE_STRENGTH_NEW
@ BEVEL_FACE_STRENGTH_ALL
@ BEVEL_AFFECT_VERTICES
@ BEVEL_AFFECT_EDGES
static unsigned long seed
Definition btSoftBody.h:39