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.