diff options
Diffstat (limited to 'src/op.h')
| -rw-r--r-- | src/op.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/op.h b/src/op.h new file mode 100644 index 0000000..1231552 --- /dev/null +++ b/src/op.h @@ -0,0 +1,72 @@ +#ifndef ANIMTOOL_OP_H_ +#define ANIMTOOL_OP_H_ + +#include "util/str.h" + +enum op_category +{ + OPC_COMMAND, + OPC_EXPR, + OPC_NODE, + OPC_TRANSFORM, + OPC_SURFACE, + OPC_SEQ, + OPC_REP, + OPC_PROJ, + OPC_CAMERA, + OPC_POS, +}; + +#define OP_TYPES(X) \ + X("var", VAR, COMMAND) \ + X("fps", FPS, COMMAND) \ + X("size", SIZE, COMMAND) \ + X("seq", SEQ, COMMAND) \ + X("proj", PROJ, COMMAND) \ + X("bg", BG, COMMAND) \ + X("out", OUT, COMMAND) \ + X("scene", SCENE, COMMAND) \ + X("+", ADD, EXPR) \ + X("-", SUB, EXPR) \ + X("*", MUL, EXPR) \ + X("/", DIV, EXPR) \ + X("%", MOD, EXPR) \ + X("abs", ABS, EXPR) \ + X("min", MIN, EXPR) \ + X("max", MAX, EXPR) \ + X("clamp", CLAMP, EXPR) \ + X("mix", MIX, EXPR) \ + X("rgb", RGB, EXPR) \ + X("time", TIME, EXPR) \ + X("cube", CUBE, NODE) \ + X("obj", OBJ, NODE) \ + X("bone", BONE, NODE) \ + X("camera", CAMERA, NODE) \ + X("light", LIGHT, NODE) \ + X("trans", TRANSFORM, NODE) \ + X("t", TRANSLATE, TRANSFORM) \ + X("s", SCALE, TRANSFORM) \ + X("r", ROTATE, TRANSFORM) \ + X("texture", TEXTURE, SURFACE) \ + X("cubemap", CUBEMAP, SURFACE) \ + X("color", COLOR, SURFACE) \ + X("pov", POV, SEQ) \ + X("rep", REP, SEQ) \ + X("inf", INF, REP) \ + X("fov", FOV, PROJ) \ + X("planes", PLANES, PROJ) \ + X("roll", ROLL, CAMERA) \ + X("pos", POS, POS) \ + X("attach", ATTACH, POS) + +enum op_type +{ +#define OP_TYPE_SYM(name, sym, cat) OP_##sym, + OP_TYPES(OP_TYPE_SYM) +#undef OP_TYPE_SYM +}; + +extern enum op_category op_category_tab[]; +extern str op_name_tab[]; + +#endif |
