// SPDX-FileCopyrightText: 2020 Inseok Lee // SPDX-License-Identifier: MIT use std::cell::RefCell; use std::sync::Arc; use crate::havok::animation_binding::HavokAnimationBinding; use crate::havok::object::HavokObject; use crate::havok::skeleton::HavokSkeleton; pub struct HavokAnimationContainer { pub skeletons: Vec, pub bindings: Vec, } impl HavokAnimationContainer { pub fn new(object: Arc>) -> Self { let root = object.borrow(); let raw_skeletons = root.get("skeletons").as_array(); let skeletons = raw_skeletons.iter().map(|x| HavokSkeleton::new(x.as_object())).collect::>(); let raw_bindings = root.get("bindings").as_array(); let bindings = raw_bindings.iter().map(|x| HavokAnimationBinding::new(x.as_object())).collect::>(); Self { skeletons, bindings } } }