1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//! Mesh skinning.

use mint;
use object::{self, ObjectType};

/// Contains array of bones.
#[derive(Clone, Debug)]
pub struct Skeleton {
    pub(crate) object: object::Base,
}
three_object!(Skeleton::object);
derive_DowncastObject!(Skeleton => ObjectType::Skeleton);

/// A single bone that forms one component of a [`Skeleton`].
///
/// [`Skeleton`]: struct.Skeleton.html
#[derive(Clone, Debug)]
pub struct Bone {
    pub(crate) object: object::Base,
}
three_object!(Bone::object);
derive_DowncastObject!(Bone => ObjectType::Bone);

/// A matrix defining how bind mesh nodes to a bone.
pub type InverseBindMatrix = mint::ColumnMatrix4<f32>;