2023-10-13 14:55:27 -04:00
|
|
|
// SPDX-FileCopyrightText: 2020 Inseok Lee
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
2024-06-29 09:33:23 -04:00
|
|
|
#![allow(dead_code)]
|
|
|
|
|
2023-10-13 14:55:27 -04:00
|
|
|
use crate::havok::animation_binding::HavokAnimationBinding;
|
|
|
|
use crate::havok::object::HavokObject;
|
|
|
|
use crate::havok::skeleton::HavokSkeleton;
|
2024-04-20 13:18:03 -04:00
|
|
|
use std::cell::RefCell;
|
|
|
|
use std::sync::Arc;
|
2023-10-13 14:55:27 -04:00
|
|
|
|
|
|
|
pub struct HavokAnimationContainer {
|
|
|
|
pub skeletons: Vec<HavokSkeleton>,
|
|
|
|
pub bindings: Vec<HavokAnimationBinding>,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl HavokAnimationContainer {
|
|
|
|
pub fn new(object: Arc<RefCell<HavokObject>>) -> Self {
|
|
|
|
let root = object.borrow();
|
|
|
|
|
|
|
|
let raw_skeletons = root.get("skeletons").as_array();
|
2024-04-20 13:18:03 -04:00
|
|
|
let skeletons = raw_skeletons
|
|
|
|
.iter()
|
|
|
|
.map(|x| HavokSkeleton::new(x.as_object()))
|
|
|
|
.collect::<Vec<_>>();
|
2023-10-13 14:55:27 -04:00
|
|
|
|
|
|
|
let raw_bindings = root.get("bindings").as_array();
|
2024-04-20 13:18:03 -04:00
|
|
|
let bindings = raw_bindings
|
|
|
|
.iter()
|
|
|
|
.map(|x| HavokAnimationBinding::new(x.as_object()))
|
|
|
|
.collect::<Vec<_>>();
|
2023-10-13 14:55:27 -04:00
|
|
|
|
2024-04-20 13:18:03 -04:00
|
|
|
Self {
|
|
|
|
skeletons,
|
|
|
|
bindings,
|
|
|
|
}
|
2023-10-13 14:55:27 -04:00
|
|
|
}
|
|
|
|
}
|