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.