assimp_sys/
anim.rs

1use std::os::raw::{c_double, c_uint};
2
3use types::*;
4
5#[repr(C)]
6#[derive(Clone, Copy, Debug)]
7pub struct AiVectorKey {
8    pub time: c_double,
9    pub value: AiVector3D,
10}
11
12#[repr(C)]
13#[derive(Clone, Copy, Debug)]
14pub struct AiQuatKey {
15    pub time: c_double,
16    pub value: AiQuaternion,
17}
18
19#[repr(C)]
20#[derive(Clone, Copy, Debug)]
21pub struct AiMeshKey {
22    pub time: c_double,
23    pub value: c_uint,
24}
25
26#[repr(C)]
27#[derive(Clone, Copy, Debug)]
28pub struct AiMeshMorphKey {
29    pub time: c_double,
30    pub values: *mut c_uint,
31    pub weights: *mut c_double,
32    pub num_values_and_weights: c_uint,
33}
34
35#[repr(C)]
36#[derive(Clone, Copy, Debug, Eq, PartialEq)]
37pub enum AiAnimBehaviour {
38    Default = 0,
39    Constant = 1,
40    Linear = 2,
41    Repeat = 3,
42}
43
44#[repr(C)]
45pub struct AiNodeAnim {
46    pub node_name: AiString,
47    pub num_position_keys: c_uint,
48    pub position_keys: *mut AiVectorKey,
49    pub num_rotation_keys: c_uint,
50    pub rotation_keys: *mut AiQuatKey,
51    pub num_scaling_keys: c_uint,
52    pub scaling_keys: *mut AiVectorKey,
53    pub pre_state: AiAnimBehaviour,
54    pub post_state: AiAnimBehaviour,
55}
56
57#[repr(C)]
58pub struct AiMeshAnim {
59    pub name: AiString,
60    pub num_keys: c_uint,
61    pub keys: *mut AiMeshKey,
62}
63
64#[repr(C)]
65pub struct AiMeshMorphAnim {
66    pub name: AiString,
67    pub num_keys: c_uint,
68    pub keys: *mut AiMeshMorphKey,
69}
70
71#[repr(C)]
72pub struct AiAnimation {
73    pub name: AiString,
74    pub duration: c_double,
75    pub ticks_per_second: c_double,
76    pub num_channels: c_uint,
77    pub channels: *mut *mut AiNodeAnim,
78    pub num_mesh_channels: c_uint,
79    pub mesh_channels: *mut *mut AiMeshAnim,
80    pub num_morph_mesh_channels: c_uint,
81    pub morph_mesh_channels: *mut *mut AiMeshMorphAnim,
82}