Blender V5.0
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
10
12
13/* See comments in `intern/bmesh_opdefines.cc` for documentation of specific operators. */
14
15/*--------defines/enumerations for specific operators-------*/
16
17/* Quad `innervert` values. */
18enum {
23};
24
25/* aligned with PROP_SMOOTH and friends */
26enum {
32 SUBD_FALLOFF_INVSQUARE = 7, /* matching PROP_INVSQUARE */
33};
34
35enum {
40};
41
42/* subdivide_edgering */
43enum {
44 /* just subdiv */
46
47 /* single bezier spline - curve follows bezier rotation */
49
50 /* beziers based on adjacent faces (fallback to tangent) */
52};
53
54/* similar face selection slot values */
55enum {
64};
65
66/* similar edge selection slot values */
67enum {
77};
78
79/* similar vertex selection slot values */
80enum {
86};
87
88/* Poke face center calculation */
89enum {
93};
94
95/* Bevel offset_type slot values */
96enum {
102};
103
104/* Bevel profile type */
105enum {
108};
109
110/* Bevel face_strength_mode values: should match face_str mode enum in DNA_modifier_types.h */
111enum {
116};
117
118/* Bevel miter slot values */
119enum {
123};
124
125/* Bevel vertex mesh creation methods */
126enum {
129};
130
131/* Bevel affect option. */
132enum {
135};
136
137/* Normal Face Strength values */
138enum {
142};
143
144extern const BMOpDefine *bmo_opdefines[];
145extern const int bmo_opdefines_total;
146
147/*------specific operator helper functions-------*/
148
150 char edge_hflag,
151 float smooth,
152 short smooth_falloff,
153 bool use_smooth_even,
154 float fractal,
155 float along_normal,
156 int numcuts,
157 int seltype,
158 int cornertype,
159 short use_single_edge,
160 short use_grid_fill,
161 short use_only_quads,
162 int seed);
163
173 BMesh *bm, uint x_segments, uint y_segments, short oflag, int cd_loop_uv_offset);
180void BM_mesh_calc_uvs_sphere(BMesh *bm, short oflag, int cd_loop_uv_offset);
190 BMesh *bm, float mat[4][4], float radius, short oflag, int cd_loop_uv_offset);
203 float mat[4][4],
204 float radius_top,
205 float radius_bottom,
206 int segments,
207 bool cap_ends,
208 short oflag,
209 int cd_loop_uv_offset);
219void BM_mesh_calc_uvs_cube(BMesh *bm, short oflag);
220
221#include "intern/bmesh_operator_api_inline.hh" /* IWYU pragma: export */
unsigned int uint
BMesh * bm
const int bmo_opdefines_total
const BMOpDefine * bmo_opdefines[]
ATTR_WARN_UNUSED_RESULT const BMFlagLayer const short oflag
@ BEVEL_MITER_PATCH
@ BEVEL_MITER_SHARP
@ BEVEL_MITER_ARC
@ SIMEDGE_FACE_ANGLE
@ SIMEDGE_FACE
@ SIMEDGE_SHARP
@ SIMEDGE_DIR
@ SIMEDGE_BEVEL
@ SIMEDGE_FREESTYLE
@ SIMEDGE_CREASE
@ SIMEDGE_LENGTH
@ SIMEDGE_SEAM
@ SUBD_CORNER_FAN
@ SUBD_CORNER_STRAIGHT_CUT
@ SUBD_CORNER_PATH
@ SUBD_CORNER_INNERVERT
@ BEVEL_AMT_WIDTH
@ BEVEL_AMT_ABSOLUTE
@ BEVEL_AMT_PERCENT
@ BEVEL_AMT_OFFSET
@ BEVEL_AMT_DEPTH
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)
@ BEVEL_VMESH_ADJ
@ BEVEL_VMESH_CUTOFF
void BM_mesh_calc_uvs_cube(BMesh *bm, short oflag)
@ BEVEL_AFFECT_VERTICES
@ BEVEL_AFFECT_EDGES
@ 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
@ SUBDIV_SELECT_ORIG
@ SUBDIV_SELECT_INNER
@ SUBDIV_SELECT_LOOPCUT
@ SUBDIV_SELECT_NONE
void BM_mesh_calc_uvs_circle(BMesh *bm, float mat[4][4], float radius, short oflag, int cd_loop_uv_offset)
@ BEVEL_PROFILE_SUPERELLIPSE
@ BEVEL_PROFILE_CUSTOM
@ SUBD_RING_INTERP_SURF
@ SUBD_RING_INTERP_PATH
@ SUBD_RING_INTERP_LINEAR
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)
@ SIMFACE_MATERIAL
@ SIMFACE_FREESTYLE
@ SIMFACE_AREA
@ SIMFACE_PERIMETER
@ SIMFACE_NORMAL
@ SIMFACE_SMOOTH
@ SIMFACE_COPLANAR
@ SIMFACE_SIDES
void BM_mesh_calc_uvs_grid(BMesh *bm, uint x_segments, uint y_segments, short oflag, int cd_loop_uv_offset)
@ BMOP_POKE_MEDIAN_WEIGHTED
@ BMOP_POKE_BOUNDS
@ BMOP_POKE_MEDIAN
@ SIMVERT_VGROUP
@ SIMVERT_FACE
@ SIMVERT_EDGE
@ SIMVERT_NORMAL
@ SIMVERT_CREASE
@ SUBD_FALLOFF_SHARP
@ SUBD_FALLOFF_SMOOTH
@ SUBD_FALLOFF_INVSQUARE
@ SUBD_FALLOFF_SPHERE
@ SUBD_FALLOFF_LIN
@ SUBD_FALLOFF_ROOT
static unsigned long seed
Definition btSoftBody.h:39