Get the latest Blender, older versions, or experimental builds.
Stay up-to-date with the new features in the latest Blender releases.
Access production assets and knowledge from the open movies.
Documentation on the usage and features in Blender.
Latest development updates, by Blender developers.
Guidelines, release notes and development docs.
A platform to collect and share results of the Blender Benchmark.
The yearly event that brings the community together.
Support core development with a monthly contribution.
Perform a single donation with more payment options available.
#ifndef BM_OPERATORS_H
#define BM_OPERATORS_H
/*--------defines/enumerations for specific operators-------*/
/*del operator "context" slot values*/
enum {
DEL_VERTS = 1,
DEL_EDGES,
DEL_ONLYFACES,
DEL_EDGESFACES,
DEL_FACES,
DEL_ALL ,
DEL_ONLYTAGGED,
};
/*quad innervert values*/
SUBD_INNERVERT,
SUBD_PATH,
SUBD_FAN,
SUBD_STRAIGHT_CUT,
/* similar face selection slot values */
SIMFACE_MATERIAL = 201,
SIMFACE_IMAGE,
SIMFACE_AREA,
SIMFACE_PERIMETER,
SIMFACE_NORMAL,
SIMFACE_COPLANAR,
/* similar edge selection slot values */
SIMEDGE_LENGTH = 101,
SIMEDGE_DIR,
SIMEDGE_FACE,
SIMEDGE_FACE_ANGLE,
SIMEDGE_CREASE,
SIMEDGE_SEAM,
SIMEDGE_SHARP,
/* similar vertex selection slot values */
SIMVERT_NORMAL = 0,
SIMVERT_FACE,
SIMVERT_VGROUP,
OPUVC_AXIS_X = 1,
OPUVC_AXIS_Y
DIRECTION_CW = 1,
DIRECTION_CCW
/* vertex path selection values */
VPATH_SELECT_EDGE_LENGTH = 0,
VPATH_SELECT_TOPOLOGICAL
extern BMOpDefine *opdefines[];
extern int bmesh_total_ops;
/*------specific operator helper functions-------*/
/*executes the duplicate operation, feeding elements of
type flag etypeflag and header flag flag to it. note,
to get more useful information (such as the mapping from
original to new elements) you should run the dupe op manually.*/
struct Object;
struct EditMesh;
void BMOP_DupeFromFlag(struct BMesh *bm, int etypeflag, int flag);
void BM_esubdivideflag(struct Object *obedit, BMesh *bm, int flag, float smooth,
float fractal, int beauty, int numcuts, int seltype,
int cornertype, int singleedge, int gridfill);
void BM_extrudefaceflag(BMesh *bm, int flag);
/*this next one return 1 if they did anything, or zero otherwise.
they're kindof a hackish way to integrate with fkey, until
such time as fkey is completely bmeshafied.*/
/*this doesn't display errors to the user, btw*/
int BM_ConnectVerts(struct EditMesh *em, int flag);
#endif