diff options
Diffstat (limited to 'source/blender/bmesh/bmesh_operators.h')
-rw-r--r-- | source/blender/bmesh/bmesh_operators.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/source/blender/bmesh/bmesh_operators.h b/source/blender/bmesh/bmesh_operators.h new file mode 100644 index 00000000000..c27cb72ecc7 --- /dev/null +++ b/source/blender/bmesh/bmesh_operators.h @@ -0,0 +1,95 @@ +#ifndef _BMESH_OPERATORS_H +#define _BMESH_OPERATORS_H + +/*see comments in intern/bmesh_opdefines.c for documentation of specific operators*/ + +/*--------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*/ +enum { + SUBD_INNERVERT, + SUBD_PATH, + SUBD_FAN, + SUBD_STRAIGHT_CUT +}; + +/* similar face selection slot values */ +enum { + SIMFACE_MATERIAL = 201, + SIMFACE_IMAGE, + SIMFACE_AREA, + SIMFACE_PERIMETER, + SIMFACE_NORMAL, + SIMFACE_COPLANAR +}; + +/* similar edge selection slot values */ +enum { + SIMEDGE_LENGTH = 101, + SIMEDGE_DIR, + SIMEDGE_FACE, + SIMEDGE_FACE_ANGLE, + SIMEDGE_CREASE, + SIMEDGE_SEAM, + SIMEDGE_SHARP +}; + +/* similar vertex selection slot values */ +enum { + SIMVERT_NORMAL = 0, + SIMVERT_FACE, + SIMVERT_VGROUP +}; + +enum { + OPUVC_AXIS_X = 1, + OPUVC_AXIS_Y +}; + +enum { + DIRECTION_CW = 1, + DIRECTION_CCW +}; + +/* vertex path selection values */ +enum { + 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, int seed); +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 |