1 #pragma once
2 
3 #ifndef _READCASM_H_
4 #define _READCASM_H_
5 
6 #include "toonzproc.h"
7 #include "casm_node.h"
8 
9 #undef TNZAPI
10 #undef TNZVAR
11 #ifdef TNZ_IS_CASMLIB
12 #define TNZAPI TNZ_EXPORT_API
13 #define TNZVAR TNZ_EXPORT_VAR
14 #else
15 #define TNZAPI TNZ_IMPORT_API
16 #define TNZVAR TNZ_IMPORT_VAR
17 #endif
18 
19 TNZAPI int n_compute(CASM_NODE *node, int x1, int y1, int x2, int y2, float dx,
20                      float dy, RASTER *raster, CASM_TILE *out);
21 
22 TNZAPI int n_compare(CASM_NODE *n1, CASM_NODE *n2);
23 
24 TNZAPI void n_write(CASM_NODE *n, T_CHAN fp);
25 
26 TNZAPI CASM_NODE *n_insert(CASM_NODE *node);
27 
28 TNZAPI CASM_FRAME *readcasm(char *filename, int first_frame, int last_frame,
29                             int frame_step, int shrink,
30                             CASM_COMPUTE_FUNCTION **compute_functions,
31                             TBOOL is_central_affine, TBOOL is_tv_licence);
32 
33 TNZAPI int readcasm_get_camera_size(int *lx, int *ly);
34 
35 TNZAPI char *readcasm_get_sink_script(char ***argv);
36 
37 TNZAPI int readcasm_get_audio_info(int *from_audio, int *to_audio,
38                                    int *from_video, char **audioname);
39 
40 TNZAPI int readcasm_set_camera_size(int lx, int ly, int shrink);
41 
42 TNZAPI int readcasm_get_field(void);
43 
44 TNZAPI void readcasm_get_camera_dpi(double *camera_x_dpi, double *camera_y_dpi);
45 
46 TNZAPI int readcasm_get_frames_n(void);
47 
48 TNZAPI int is_binary_op(CASM_NODE *arg, CASM_NODE **arg2, CASM_NODE **arg3);
49 
50 TNZAPI int is_special_binary_op(CASM_NODE *arg, CASM_NODE **arg2,
51                                 CASM_NODE **arg3);
52 
53 TNZAPI int is_unary_op(CASM_NODE *arg, CASM_NODE **arg2);
54 
55 TNZAPI int is_n_ary_op(CASM_NODE *arg, int *num_args, CASM_NODE ***args);
56 
57 TNZAPI int is_affine_op(CASM_NODE *n, CASM_NODE **arg);
58 
59 TNZAPI int get_affine_args(CASM_NODE *n, AFFINE *aff, CASM_NODE **arg);
60 
61 TNZAPI CASM_NODE *create_affine_op(AFFINE *aff, CASM_NODE *n);
62 
63 TNZAPI int n_compare_ric(CASM_NODE *tree1, CASM_NODE *tree2);
64 
65 TNZAPI void make_border(RASTER *raster);
66 
67 TNZAPI void readcasm_create_new_frame(CASM_NODE *node, char *filename);
68 
69 TNZAPI void readcasm_do_for_all_frames(void (*fun)(CASM_FRAME *f));
70 
71 TNZAPI void readcasm_touch_frames(void);
72 
73 TNZAPI int is_read_op(CASM_NODE *arg);
74 
75 TNZAPI int is_backlit_op(CASM_NODE *arg, CASM_NODE **arg2, CASM_NODE **arg3);
76 
77 TNZAPI int n_compare_ric(CASM_NODE *tree1, CASM_NODE *tree2);
78 
79 TNZAPI void make_border(RASTER *raster);
80 
81 TNZAPI void reset_camera_size(void);
82 
83 TNZAPI CASM_NODE *go_to_leaf_node(CASM_NODE *node);
84 
85 TNZAPI void apply_extcmap(CASM_NODE *node, char *cmapname);
86 
87 TNZAPI int readcasm_frame(CASM_FRAME **frame);
88 
89 TNZAPI void init_readcasm_functions(CASM_COMPUTE_FUNCTION **casm_functions,
90                                     int pipeid, int shrink);
91 
92 TNZAPI void init_readcasm_input_channel(void);
93 
94 TNZAPI CASM_FRAME *get_tree_pointer(void);
95 
96 TNZAPI void readcasm_set_msg_trace(void);
97 TNZAPI TBOOL readcasm_open_log_file(char *casmname, char *filename);
98 TNZAPI TBOOL readcasm_close_log_file(void);
99 TNZAPI void readcasm_set_frame(int frame_num);
100 TNZAPI int readcasm_get_frame(void);
101 
102 TNZAPI void readcasm_get_render_tile(int *x1, int *y1, int *x2, int *y2);
103 
104 TNZAPI int is_matte_op(CASM_NODE *n, CASM_NODE **arg_dn, CASM_NODE **arg_up);
105 TNZAPI int is_localblur_op(CASM_NODE *n, CASM_NODE **arg_dn,
106                            CASM_NODE **arg_up);
107 TNZAPI int is_localtransp_op(CASM_NODE *n, CASM_NODE **arg_dn,
108                              CASM_NODE **arg_up);
109 TNZAPI int is_ovr_op(CASM_NODE *n, CASM_NODE **arg_dn, CASM_NODE **arg_up);
110 TNZAPI int is_add_op(CASM_NODE *n, CASM_NODE **arg_dn, CASM_NODE **arg_up);
111 TNZAPI int is_warp_op(CASM_NODE *n, CASM_NODE **arg_dn, CASM_NODE **arg_up);
112 TNZAPI int is_colorcard_op(CASM_NODE *n);
113 TNZAPI int get_add_args(CASM_NODE *n, CASM_NODE **arg_dn, CASM_NODE **arg_up,
114                         float *value);
115 TNZAPI int there_is_colorcard(CASM_NODE *arg);
116 TNZAPI int there_is_standard_colorcard(CASM_NODE *arg);
117 TNZAPI int there_is_colorcard_with_ovr(CASM_NODE *arg);
118 TNZAPI TBOOL get_colorcard_rgbm(CASM_NODE *arg, LPIXEL *color);
119 
120 TNZAPI enum CASM_RESAMPLE_TYPE get_resample_type(void);
121 TNZAPI void casm_set_resample_type(enum CASM_RESAMPLE_TYPE type);
122 
123 TNZAPI void free_casmtree(CASM_NODE *n);
124 TNZAPI CASM_NODE *dup_casmtree(CASM_NODE *n);
125 TNZAPI CASM_NODE *make_subtree(CASM_NODE *n, int from_column, int to_column);
126 TNZAPI int split_tree(CASM_NODE *tree, CASM_NODE **lefttree,
127                       CASM_NODE **righttree, int occurrence);
128 TNZAPI int writecasm(CASM_FRAME *frames_list, T_CHAN fp, int start_frame,
129                      int write_header, TBOOL is_central_affine);
130 TNZAPI int get_level_list(CASM_NODE *tree, char ***levels);
131 TNZAPI CASM_NODE *change_leaf(CASM_NODE *tree, int occurrence,
132                               char *newlevelname, char *newpalette, int dx,
133                               int dy);
134 TNZAPI CASM_NODE *make_a_sandwich(CASM_NODE *bread_dn_tree, char *newlevelname,
135                                   char *newpalette, int dx, int dy,
136                                   CASM_NODE *bread_up_tree);
137 
138 TNZAPI void write_raster(char *filename, RASTER *raster);
139 TNZAPI int read_raster(char *filename, RASTER *raster, int shrink, int border,
140                        double *x_dpi, double *y_dpi);
141 
142 /*
143 #undef  TNZAPI
144 #ifdef WIN32
145 #ifdef TNZ_IS_COMMONLIB
146   #define TNZAPI TNZ_EXPORT_API
147 #else
148   #define TNZAPI TNZ_IMPORT_API
149 #endif
150 #else
151   #define TNZAPI extern
152 #endif
153 */
154 
155 TNZVAR int Is_casm;
156 TNZVAR int Always_scale_opt;
157 
158 #endif
159