1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-25 05:47:45 +00:00
physis/src/havok/animation_container.rs

39 lines
1 KiB
Rust
Raw Normal View History

// SPDX-FileCopyrightText: 2020 Inseok Lee
// SPDX-License-Identifier: MIT
#![allow(dead_code)]
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;
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<_>>();
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<_>>();
2024-04-20 13:18:03 -04:00
Self {
skeletons,
bindings,
}
}
}