#pragma once #if !defined(TOONZ_PARAMS_H__) #define TOONZ_PARAMS_H__ #include //#include #if defined(_MSC_VER) #pragma pack(push, 1) #endif #if defined(DEFAULT) /* remove creepy macro in tcommon.h */ #undef DEFAULT #endif struct toonz_param_traits_double_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_DOUBLE; static const int RANGED = 1; static const int DEFAULT = 1; typedef double valuetype; typedef double iovaluetype; #endif double def; double min, max; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_double_t_ toonz_param_traits_double_t; struct toonz_param_traits_int_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_INT; static const int RANGED = 1; static const int DEFAULT = 1; typedef int valuetype; typedef int iovaluetype; #endif int def; int min, max; int reserved_; } TOONZ_PACK; typedef toonz_param_traits_int_t_ toonz_param_traits_int_t; struct toonz_param_range_t_ { double a, b; } TOONZ_PACK; typedef toonz_param_range_t_ toonz_param_range_t; struct toonz_param_traits_range_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_RANGE; static const int RANGED = 1; static const int DEFAULT = 1; typedef toonz_param_range_t valuetype; typedef toonz_param_range_t iovaluetype; #endif toonz_param_range_t def; toonz_param_range_t minmax; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_range_t_ toonz_param_traits_range_t; struct toonz_param_color_t_ { int c0, c1, c2, m; } TOONZ_PACK; typedef toonz_param_color_t_ toonz_param_color_t; struct toonz_param_traits_color_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_PIXEL; static const int RANGED = 0; static const int DEFAULT = 1; typedef toonz_param_color_t valuetype; typedef toonz_param_color_t iovaluetype; #endif toonz_param_color_t def; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_color_t_ toonz_param_traits_color_t; struct toonz_param_point_t_ { double x, y; } TOONZ_PACK; typedef toonz_param_point_t_ toonz_param_point_t; struct toonz_param_traits_point_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_POINT; static const int RANGED = 1; static const int DEFAULT = 1; typedef toonz_param_point_t valuetype; typedef toonz_param_point_t iovaluetype; #endif toonz_param_point_t def; toonz_param_point_t min; toonz_param_point_t max; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_point_t_ toonz_param_traits_point_t; struct toonz_param_traits_enum_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_ENUM; static const int RANGED = 0; static const int DEFAULT = 1; typedef int valuetype; typedef int iovaluetype; #endif int def; int enums; const char **array; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_enum_t_ toonz_param_traits_enum_t; struct toonz_param_traits_bool_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_BOOL; static const int RANGED = 0; static const int DEFAULT = 1; typedef int valuetype; typedef int iovaluetype; #endif int def; int reserved_; } TOONZ_PACK; typedef toonz_param_traits_bool_t_ toonz_param_traits_bool_t; struct toonz_param_spectrum_t_ { double w; double c0, c1, c2, m; } TOONZ_PACK; typedef toonz_param_spectrum_t_ toonz_param_spectrum_t; struct toonz_param_traits_spectrum_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_SPECTRUM; static const int RANGED = 0; static const int DEFAULT = 1; typedef toonz_param_spectrum_t valuetype; typedef toonz_param_spectrum_t iovaluetype; #endif double def; int points; toonz_param_spectrum_t *array; int reserved_; } TOONZ_PACK; typedef toonz_param_traits_spectrum_t_ toonz_param_traits_spectrum_t; struct toonz_param_traits_string_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_STRING; static const int RANGED = 0; static const int DEFAULT = 1; typedef const char *valuetype; typedef char iovaluetype; #endif const char *def; double reserved_; } TOONZ_PACK; typedef toonz_param_traits_string_t_ toonz_param_traits_string_t; struct toonz_param_tonecurve_point_t_ { double x, y; double c0, c1, c2, c3; } TOONZ_PACK; typedef toonz_param_tonecurve_point_t_ toonz_param_tonecurve_point_t; struct toonz_param_tonecurve_value_t_ { double x; double y; int channel; int interp; } TOONZ_PACK; typedef toonz_param_tonecurve_value_t_ toonz_param_tonecurve_value_t; struct toonz_param_traits_tonecurve_t_ { #if defined(__cplusplus) static const int E = TOONZ_PARAM_TYPE_TONECURVE; static const int RANGED = 0; static const int DEFAULT = 0; typedef toonz_param_tonecurve_point_t valuetype; typedef toonz_param_tonecurve_value_t iovaluetype; #endif double reserved_; } TOONZ_PACK; typedef toonz_param_traits_tonecurve_t_ toonz_param_traits_tonecurve_t; #define TOONZ_PARAM_DESC_TYPE_PARAM (0) #define TOONZ_PARAM_DESC_TYPE_PAGE (1) #define TOONZ_PARAM_DESC_TYPE_GROUP (2) struct toonz_param_base_t_ { toonz_if_version_t ver; int type; const char *label; } TOONZ_PACK; struct toonz_param_desc_t_ { struct toonz_param_base_t_ base; const char *key; const char *note; void *reserved_[2]; int traits_tag; union { toonz_param_traits_double_t d; toonz_param_traits_int_t i; toonz_param_traits_enum_t e; toonz_param_traits_range_t rd; toonz_param_traits_bool_t b; toonz_param_traits_color_t c; toonz_param_traits_point_t p; toonz_param_traits_spectrum_t g; toonz_param_traits_string_t s; toonz_param_traits_tonecurve_t t; } traits; } TOONZ_PACK; typedef struct toonz_param_desc_t_ toonz_param_desc_t; struct toonz_param_group_t_ { struct toonz_param_base_t_ base; int num; toonz_param_desc_t *array; } TOONZ_PACK; typedef struct toonz_param_group_t_ toonz_param_group_t; struct toonz_param_page_t_ { struct toonz_param_base_t_ base; int num; toonz_param_group_t *array; } TOONZ_PACK; typedef struct toonz_param_page_t_ toonz_param_page_t; #if defined(_MSC_VER) #pragma pack(pop) #endif #endif