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: Extras

Optional 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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Retrieves a single value at the given index.

Serialize this value into the given Serde serializer. Read more

Validates the invariants required for the library to function safely.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.