mod3d_gltf/
scene.rs

1//a Imports
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5use crate::Named;
6use crate::{NodeIndex, SceneIndex};
7
8//a GltfScene
9//tp GltfScene
10/// A type that contains the data from a Gltf Json 'Scene'
11#[derive(Debug, Default)]
12#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
13#[cfg_attr(feature = "serde", serde(default))]
14pub struct GltfScene {
15    /// Optional name of the scene
16    pub name: String,
17    /// List of nodes in the scene (should not be empty)
18    ///
19    /// This can include cameras, lights, etc; each must be a root node id
20    pub nodes: Vec<NodeIndex>,
21}
22impl GltfScene {
23    pub fn add_node(&mut self, node: NodeIndex) {
24        self.nodes.push(node);
25    }
26}
27
28//ip Named for GltfScene
29impl Named for GltfScene {
30    type Index = SceneIndex;
31    fn is_name(&self, name: &str) -> bool {
32        self.name == name
33    }
34}