Reference

Model facts

ay2d_parameter_repeat

int32_t ay2d_parameter_repeat(const ay2d_model *m, uint32_t i);

1 when the parameter wraps around its range instead of stopping at the ends (a head that turns all the way round). Thread: any.

ay2d_parameter_keys

uint32_t ay2d_parameter_keys(const ay2d_model *m, uint32_t i, float *out, size_t n);

The values the parameter was rigged at, sorted: the dots a slider shows. Returns how many there are and writes the first n. A mesh rigged only on part of a parameter's range is hidden while the value is outside its keys. Thread: any.

ay2d_part_parent, ay2d_mesh_part

int32_t ay2d_part_parent(const ay2d_model *m, uint32_t i);
int32_t ay2d_mesh_part(const ay2d_model *m, uint32_t i);

The part that holds a part or a mesh, or -1 at the top. Thread: any.

ay2d_mesh_blend

uint32_t ay2d_mesh_blend(const ay2d_model *m, uint32_t i);

Mesh i's blend as moc3 5.3 stores it: the colour blend in the low byte, the alpha blend in the next. Colour: 0 Normal, 1 Add (before 5.3), 2 Multiply (before 5.3), 3 Add, 4 Add (glow), 5 Darken, 6 Multiply, 7 Color burn, 8 Linear burn, 9 Lighten, 10 Screen, 11 Color dodge, 12 Overlay, 13 Soft light, 14 Hard light, 15 Linear light, 16 Hue, 17 Color. Alpha: 0 Over, 1 Atop, 2 Out, 3 Conjoint, 4 Disjoint. 0, 1 and 2 with Over are what the drawable's flags already say; see Blending. Thread: any.

ay2d_parameter_group_count, ay2d_parameter_group_name, ay2d_parameter_group

uint32_t    ay2d_parameter_group_count(const ay2d_model *m);
const char *ay2d_parameter_group_name(const ay2d_model *m, uint32_t g);
uint32_t    ay2d_parameter_group(const ay2d_model *m, uint32_t g, uint32_t *out, size_t n);

The folders the parameters were organised into, and which parameters each holds. ay2d_parameter_group returns the member count and writes the first n indices. Thread: any.

ay2d_model_group_count, ay2d_model_group_name, ay2d_model_group

uint32_t    ay2d_model_group_count(const ay2d_model *m);
const char *ay2d_model_group_name(const ay2d_model *m, uint32_t g);
uint32_t    ay2d_model_group(const ay2d_model *m, uint32_t g, uint32_t *out, size_t n);

The standard groups the model names, EyeBlink and LipSync: the parameters a blink or a lip sync should drive. Thread: any.