pub struct Node {
pub camera: Option<Index<Camera>>,
pub children: Option<Vec<Index<Node>>>,
pub extensions: Option<Node>,
pub extras: Extras,
pub matrix: Option<[f32; 16]>,
pub mesh: Option<Index<Mesh>>,
pub rotation: Option<UnitQuaternion>,
pub scale: Option<[f32; 3]>,
pub translation: Option<[f32; 3]>,
pub skin: Option<Index<Skin>>,
pub weights: Option<Vec<f32>>,
}Expand description
A node in the node hierarchy. When the node contains skin, all
mesh.primitives must contain JOINTS_0 and WEIGHTS_0 attributes.
A node can have either a matrix or any combination of
translation/rotation/scale (TRS) properties. TRS properties are converted
to matrices and postmultiplied in the T * R * S order to compose the
transformation matrix; first the scale is applied to the vertices, then the
rotation, and then the translation. If none are provided, the transform is the
identity. When a node is targeted for animation (referenced by an
animation.channel.target), only TRS properties may be present; matrix will not
be present.
Fields§
§camera: Option<Index<Camera>>The index of the camera referenced by this node.
children: Option<Vec<Index<Node>>>The indices of this node’s children.
extensions: Option<Node>Extension specific data.
extras: ExtrasOptional application specific data.
matrix: Option<[f32; 16]>4x4 column-major transformation matrix.
glTF 2.0 specification: When a node is targeted for animation (referenced by an animation.channel.target), only TRS properties may be present; matrix will not be present.
TODO: Ensure that .matrix is set to None or otherwise skipped during serialization, if the node is targeted for animation.
mesh: Option<Index<Mesh>>The index of the mesh in this node.
rotation: Option<UnitQuaternion>The node’s unit quaternion rotation in the order (x, y, z, w), where w is the scalar.
scale: Option<[f32; 3]>The node’s non-uniform scale.
translation: Option<[f32; 3]>The node’s translation.
skin: Option<Index<Skin>>The index of the skin referenced by this node.
weights: Option<Vec<f32>>The weights of the instantiated Morph Target. Number of elements must match the number of Morph Targets of used mesh.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Node
impl<'de> Deserialize<'de> for Node
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Node
impl RefUnwindSafe for Node
impl Send for Node
impl Sync for Node
impl Unpin for Node
impl UnwindSafe for Node
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)