| #pragma once |
| |
| #ifndef _CASM_NODE_DEFINED_H |
| #define _CASM_NODE_DEFINED_H |
| |
| #include "raster.h" |
| #include "casm.h" |
| #include "tmacro.h" |
| #include "affine.h" |
| #include "toonzproc.h" |
| |
| #define CASM_NODE_HD \ |
| struct CASM_NODEPROC *proc; \ |
| char bg_flag, bad_branch; \ |
| ULONG mask; \ |
| int label; |
| |
| #define CASM_UNARY_NODE_HD \ |
| CASM_NODE_HD \ |
| CASM_NODE *arg; |
| |
| #define CASM_BINARY_NODE_HD \ |
| CASM_NODE_HD \ |
| CASM_NODE *arg_dn, *arg_up; \ |
| int marker_dn, marker_up; |
| |
| #define CASM_N_ARY_NODE_HD \ |
| CASM_NODE_HD \ |
| int num_args; \ |
| CASM_NODE **args; |
| |
| typedef struct CASM_NODE { CASM_NODE_HD } CASM_NODE; |
| |
| typedef struct CASM_TILE { |
| RASTER r; |
| int x1, y1, x2, y2; |
| } CASM_TILE; |
| |
| typedef struct CASM_NODESIZE { |
| float x1, y1, x2, y2; |
| float sbx1, sby1, sbx2, sby2; |
| } CASM_NODESIZE; |
| |
| typedef struct USR_IMAGE { |
| void *buffer; |
| enum img_type type; |
| int wrap, lx, ly; |
| struct { |
| LPIXEL *buffer; |
| int offset, size; |
| } cmap; |
| } USR_IMAGE; |
| |
| enum CASM_NODE_TYPE { |
| OVR_TRANSF = 0, |
| ADD_TRANSF, |
| BACKLIT_TRANSF, |
| MATTE_TRANSF, |
| WARP_TRANSF, |
| BLUR_TRANSF, |
| MBLUR_TRANSF, |
| UDIT_TRANSF, |
| READ_TRANSF, |
| FLIPX_TRANSF, |
| FLIPY_TRANSF, |
| EXTOP_TRANSF, |
| COLOR_TRANSF, |
| COLORCARD_TRANSF, |
| AFFINE_TRANSF, |
| SHARPEN_TRANSF, |
| LOCALBLUR_TRANSF, |
| LOCALTRANSP_TRANSF, |
| BODY_SHADOW_TRANSF, |
| REFLECTION_TRANSF, |
| CASM_NODE_TYPE_HOW_MANY |
| }; |
| |
| typedef int CASM_COMPUTE_FUNCTION(CASM_NODE *node, int x1, int y1, int x2, |
| int y2, float dx, float dy, RASTER *raster, |
| CASM_TILE *out); |
| |
| typedef void CASM_CE_FUNCTION(float *pars, int cx, int cy, RASTER *rin, |
| RASTER *rout, int shrink); |
| |
| typedef struct CASM_RENDER_INFO { |
| float dx, dy; |
| int shrink; |
| int frame; |
| int column; |
| } CASM_RENDER_INFO; |
| |
| typedef void CASM_CLC_FUNCTION(float *pars, CASM_RENDER_INFO *info, |
| RASTER *rout); |
| |
| typedef int CASM_COMPARE_FUNCTION(CASM_NODE *n1, CASM_NODE *n2); |
| |
| typedef void CASM_WRITE_FUNCTION(CASM_NODE *node, T_CHAN fp); |
| |
| |
| |
| typedef struct CASM_NODEPROC { |
| CASM_COMPUTE_FUNCTION *compute; |
| CASM_COMPARE_FUNCTION *compare; |
| CASM_WRITE_FUNCTION *write; |
| int record_size; |
| } CASM_NODEPROC; |
| |
| |
| |
| typedef struct CASM_FRAME { |
| struct CASM_FRAME *next; |
| CASM_NODE *node; |
| char *filename; |
| } CASM_FRAME; |
| |
| |
| |
| typedef struct CASM_NODE_ADD { |
| CASM_BINARY_NODE_HD |
| int diff_values; |
| float value; |
| TBOOL is_add, dont_use_matte; |
| } CASM_NODE_ADD; |
| |
| |
| |
| typedef struct CASM_NODE_LOCALBLUR { |
| CASM_BINARY_NODE_HD |
| float value; |
| } CASM_NODE_LOCALBLUR; |
| |
| |
| |
| typedef struct CASM_NODE_LOCALTRANSP { |
| CASM_BINARY_NODE_HD |
| float value; |
| } CASM_NODE_LOCALTRANSP; |
| |
| |
| |
| typedef struct CASM_NODE_BLUR { |
| CASM_UNARY_NODE_HD |
| float blur; |
| int backlit; |
| } CASM_NODE_BLUR; |
| |
| |
| |
| typedef struct CASM_NODE_MBLUR { |
| CASM_UNARY_NODE_HD |
| double bx; |
| double by; |
| } CASM_NODE_MBLUR; |
| |
| |
| |
| typedef struct CASM_NODE_BODY_SHADOW { |
| CASM_UNARY_NODE_HD |
| TPOINT p; |
| int blur; |
| float transp; |
| TBOOL is_highlight; |
| } CASM_NODE_BODY_SHADOW; |
| |
| |
| |
| typedef struct CASM_NODE_REFLECTION { |
| CASM_UNARY_NODE_HD |
| float stretch_x; |
| float stretch_y; |
| float skew; |
| float blur_min; |
| float blur_max; |
| float transp_min; |
| float transp_max; |
| TBOOL is_shadow; |
| } CASM_NODE_REFLECTION; |
| |
| |
| |
| typedef struct CASM_NODE_SHARPEN { |
| CASM_UNARY_NODE_HD |
| int value; |
| } CASM_NODE_SHARPEN; |
| |
| |
| |
| typedef struct CASM_NODE_PREMULTIPLY { |
| CASM_UNARY_NODE_HD |
| } CASM_NODE_PREMULTIPLY; |
| |
| |
| |
| typedef struct OLD_USR_IMAGE { |
| void *buffer; |
| enum img_type type; |
| int wrap, lx, ly; |
| struct { |
| LPIXEL *buffer; |
| int offset, size; |
| } cmap; |
| } OLD_USR_IMAGE; |
| |
| typedef struct CASM_NODE_UDIT { |
| CASM_N_ARY_NODE_HD |
| char *keyword; |
| char *op_name; |
| char *type; |
| int argc; |
| char **argv; |
| void (*op_function)(OLD_USR_IMAGE *img_in, |
| OLD_USR_IMAGE *img_out, |
| int argc, char **argv); |
| int plugin_index; |
| int fx_index; |
| } CASM_NODE_UDIT; |
| |
| |
| |
| typedef struct CASM_NODE_MATTE { |
| CASM_BINARY_NODE_HD |
| int revert; |
| } CASM_NODE_MATTE; |
| |
| |
| |
| typedef struct CASM_NODE_WARP { |
| CASM_BINARY_NODE_HD |
| int grid_step; |
| float intensity; |
| } CASM_NODE_WARP; |
| |
| |
| |
| typedef struct CASM_NODE_OVR { CASM_BINARY_NODE_HD } CASM_NODE_OVR; |
| |
| |
| |
| typedef struct CASM_NODE_BACKLIT { |
| CASM_BINARY_NODE_HD |
| int diff_values; |
| float value; |
| } CASM_NODE_BACKLIT; |
| |
| |
| |
| typedef struct CASM_NODE_READ { |
| CASM_NODE_HD |
| char *filename; |
| char *cmapname; |
| char *op_name; |
| int *no_ink, *no_paint; |
| TBOOL keep_inks, keep_paints; |
| int premultiply; |
| int out_size; |
| int argc; |
| char **argv; |
| void (*op_function)(OLD_USR_IMAGE *img_in, OLD_USR_IMAGE *img_out, int argc, |
| char **argv); |
| enum img_type type; |
| int xsize, ysize, border; |
| int sbx1, sby1, sbx2, sby2; |
| double h_pos; |
| UCHAR patch; |
| CASM_WINDOW *bg_info; |
| int occurrence; |
| int full_read; |
| } CASM_NODE_READ; |
| |
| |
| |
| typedef struct CASM_NODE_COLOR { |
| CASM_UNARY_NODE_HD |
| char *keyword; |
| int plugin_index; |
| int fx_index; |
| int num_pars; |
| float *pars; |
| } CASM_NODE_COLOR; |
| |
| |
| typedef struct CASM_NODE_COLORCARD { |
| CASM_NODE_HD |
| char *keyword; |
| int plugin_index; |
| int fx_index; |
| int num_pars; |
| float *pars; |
| } CASM_NODE_COLORCARD; |
| |
| |
| |
| typedef struct CASM_NODE_AFFINE { |
| CASM_UNARY_NODE_HD |
| AFFINE aff; |
| enum CASM_RESAMPLE_TYPE resample_type; |
| } CASM_NODE_AFFINE; |
| |
| |
| |
| typedef struct CASM_NODE_S_FLIP { |
| CASM_UNARY_NODE_HD |
| double c; |
| } CASM_NODE_S_FLIP; |
| |
| |
| |
| typedef struct CASM_NODE_EXTOP { |
| CASM_UNARY_NODE_HD |
| char *op_filename, *format_in, *format_out, *arguments; |
| } CASM_NODE_EXTOP; |
| |
| |
| |
| typedef struct CASM_NODE_NO_INK { |
| CASM_UNARY_NODE_HD |
| int which_ink; |
| } CASM_NODE_NO_INK; |
| |
| |
| |
| typedef struct CASM_NODE_UNARY { CASM_UNARY_NODE_HD } CASM_NODE_UNARY; |
| |
| |
| |
| typedef struct CASM_NODE_BINARY { CASM_BINARY_NODE_HD } CASM_NODE_BINARY; |
| |
| |
| |
| typedef struct CASM_NODE_N_ARY { CASM_N_ARY_NODE_HD } CASM_NODE_N_ARY; |
| |
| |
| |
| #endif |