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}