Blender  V2.93
bmesh_operators.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
17 #pragma once
18 
23 /*see comments in intern/bmesh_opdefines.c for documentation of specific operators*/
24 
25 /*--------defines/enumerations for specific operators-------*/
26 
27 /* Quad `innervert` values. */
28 enum {
33 };
34 
35 /* aligned with PROP_SMOOTH and friends */
36 enum {
42  SUBD_FALLOFF_INVSQUARE = 7, /* matching PROP_INVSQUARE */
43 };
44 
45 enum {
50 };
51 
52 /* subdivide_edgering */
53 enum {
54  /* just subdiv */
56 
57  /* single bezier spline - curve follows bezier rotation */
59 
60  /* beziers based on adjacent faces (fallback to tangent) */
62 };
63 
64 /* similar face selection slot values */
65 enum {
75 };
76 
77 /* similar edge selection slot values */
78 enum {
88 };
89 
90 /* similar vertex selection slot values */
91 enum {
96 };
97 
98 /* Poke face center calculation */
99 enum {
103 };
104 
105 /* Bevel offset_type slot values */
106 enum {
112 };
113 
114 /* Bevel profile type */
115 enum {
118 };
119 
120 /* Bevel face_strength_mode values: should match face_str mode enum in DNA_modifier_types.h */
121 enum {
126 };
127 
128 /* Bevel miter slot values */
129 enum {
133 };
134 
135 /* Bevel vertex mesh creation methods */
136 enum {
139 };
140 
141 /* Bevel affect option. */
142 enum {
145 };
146 
147 /* Normal Face Strength values */
148 enum {
152 };
153 
154 extern const BMOpDefine *bmo_opdefines[];
155 extern const int bmo_opdefines_total;
156 
157 /*------specific operator helper functions-------*/
159  const char edge_hflag,
160  const float smooth,
161  const short smooth_falloff,
162  const bool use_smooth_even,
163  const float fractal,
164  const float along_normal,
165  const int numcuts,
166  const int seltype,
167  const int cornertype,
168  const short use_single_edge,
169  const short use_grid_fill,
170  const short use_only_quads,
171  const int seed);
172 
174  const uint x_segments,
175  const uint y_segments,
176  const short oflag,
177  const int cd_loop_uv_offset);
178 void BM_mesh_calc_uvs_sphere(BMesh *bm, const short oflag, const int cd_loop_uv_offset);
180  float mat[4][4],
181  const float radius,
182  const short oflag,
183  const int cd_loop_uv_offset);
185  float mat[4][4],
186  const float radius_top,
187  const float radius_bottom,
188  const int segments,
189  const bool cap_ends,
190  const short oflag,
191  const int cd_loop_uv_offset);
192 void BM_mesh_calc_uvs_cube(BMesh *bm, const short oflag);
193 
unsigned int uint
Definition: BLI_sys_types.h:83
ATTR_WARN_UNUSED_RESULT BMesh * bm
ATTR_WARN_UNUSED_RESULT const BMFlagLayer const short oflag
void BM_mesh_esubdivide(BMesh *bm, const char edge_hflag, const float smooth, const short smooth_falloff, const bool use_smooth_even, const float fractal, const float along_normal, const int numcuts, const int seltype, const int cornertype, const short use_single_edge, const short use_grid_fill, const short use_only_quads, const int seed)
@ 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_cube(BMesh *bm, const short oflag)
@ SIMFACE_MATERIAL
@ SIMFACE_FREESTYLE
@ SIMFACE_AREA
@ SIMFACE_PERIMETER
@ SIMFACE_NORMAL
@ SIMFACE_SMOOTH
@ SIMFACE_COPLANAR
@ SIMFACE_FACEMAP
@ SIMFACE_SIDES
@ SUBD_RING_INTERP_SURF
@ SUBD_RING_INTERP_PATH
@ SUBD_RING_INTERP_LINEAR
@ 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
void BM_mesh_calc_uvs_circle(BMesh *bm, float mat[4][4], const float radius, const short oflag, const int cd_loop_uv_offset)
void BM_mesh_calc_uvs_cone(BMesh *bm, float mat[4][4], const float radius_top, const float radius_bottom, const int segments, const bool cap_ends, const short oflag, const int cd_loop_uv_offset)
@ 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
void BM_mesh_calc_uvs_sphere(BMesh *bm, const short oflag, const int cd_loop_uv_offset)
const int bmo_opdefines_total
const BMOpDefine * bmo_opdefines[]
@ BMOP_POKE_MEDIAN_WEIGHTED
@ BMOP_POKE_BOUNDS
@ BMOP_POKE_MEDIAN
@ FACE_STRENGTH_STRONG
@ FACE_STRENGTH_WEAK
@ FACE_STRENGTH_MEDIUM
@ BEVEL_FACE_STRENGTH_NONE
@ BEVEL_FACE_STRENGTH_AFFECTED
@ BEVEL_FACE_STRENGTH_NEW
@ BEVEL_FACE_STRENGTH_ALL
@ BEVEL_AFFECT_VERTICES
@ BEVEL_AFFECT_EDGES
void BM_mesh_calc_uvs_grid(BMesh *bm, const uint x_segments, const uint y_segments, const short oflag, const int cd_loop_uv_offset)
static unsigned long seed
Definition: btSoftBody.h:39