skip assigning vars for inline bmesh flag funcs, just cast.
[blender.git] / source / blender / bmesh / bmesh_error.h
1 #ifndef _BMESH_ERROR_H
2 #define _BMESH_ERROR_H
3
4 /*----------- bmop error system ----------*/
5
6 /*pushes an error onto the bmesh error stack.
7   if msg is null, then the default message for the errorcode is used.*/
8 void BMO_RaiseError(BMesh *bm, BMOperator *owner, int errcode, const char *msg);
9
10 /*gets the topmost error from the stack.
11   returns error code or 0 if no error.*/
12 int BMO_GetError(BMesh *bm, const char **msg, BMOperator **op);
13 int BMO_HasError(BMesh *bm);
14
15 /*same as geterror, only pops the error off the stack as well*/
16 int BMO_PopError(BMesh *bm, const char **msg, BMOperator **op);
17 void BMO_ClearStack(BMesh *bm);
18
19 #if 0
20 //this is meant for handling errors, like self-intersection test failures.
21 //it's dangerous to handle errors in general though, so disabled for now.
22
23 /*catches an error raised by the op pointed to by catchop.
24   errorcode is either the errorcode, or BMERR_ALL for any 
25   error.*/
26 int BMO_CatchOpError(BMesh *bm, BMOperator *catchop, int errorcode, char **msg);
27 #endif
28
29 /*------ error code defines -------*/
30
31 /*error messages*/
32 #define BMERR_SELF_INTERSECTING                 1
33 #define BMERR_DISSOLVEDISK_FAILED               2
34 #define BMERR_CONNECTVERT_FAILED                3
35 #define BMERR_WALKER_FAILED                             4
36 #define BMERR_DISSOLVEFACES_FAILED              5
37 #define BMERR_DISSOLVEVERTS_FAILED              6
38 #define BMERR_TESSELATION                               7
39 #define BMERR_NONMANIFOLD                               8
40 #define BMERR_INVALID_SELECTION                 9
41 #define BMERR_MESH_ERROR                                10
42
43 #endif /* _BMESH_ERROR_H */