cesium-native  0.41.0
CesiumGltf::Node Struct Referencefinal

A node in the node hierarchy. When the node contains skin, all mesh.primitives MUST contain JOINTS_0 and WEIGHTS_0 attributes. A node MAY 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), matrix MUST NOT be present. More...

#include <CesiumGltf/Node.h>

Inheritance diagram for CesiumGltf::Node:
CesiumGltf::NamedObject CesiumUtility::ExtensibleObject

Public Attributes

int32_t camera = -1
 The index of the camera referenced by this node.
 
std::vector< int32_t > children
 The indices of this node's children.
 
int32_t skin = -1
 The index of the skin referenced by this node. More...
 
std::vector< double > matrix = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}
 A floating-point 4x4 transformation matrix stored in column-major order.
 
int32_t mesh = -1
 The index of the mesh in this node.
 
std::vector< double > rotation = {0, 0, 0, 1}
 The node's unit quaternion rotation in the order (x, y, z, w), where w is the scalar.
 
std::vector< double > scale = {1, 1, 1}
 The node's non-uniform scale, given as the scaling factors along the x, y, and z axes.
 
std::vector< double > translation = {0, 0, 0}
 The node's translation along the x, y, and z axes.
 
std::vector< double > weights
 The weights of the instantiated morph target. The number of array elements MUST match the number of morph targets of the referenced mesh. When defined, mesh MUST also be defined.
 
- Public Attributes inherited from CesiumGltf::NamedObject
std::string name
 The user-defined name of this object. More...
 
- Public Attributes inherited from CesiumUtility::ExtensibleObject
std::unordered_map< std::string, std::any > extensions
 The extensions attached to this object. More...
 
JsonValue::Object extras
 Application-specific data. More...
 
JsonValue::Object unknownProperties
 Unknown properties that exist on this object but do not have any representation in the statically-typed classes. More...
 

Static Public Attributes

static constexpr const char * TypeName = "Node"
 

Additional Inherited Members

- Public Member Functions inherited from CesiumUtility::ExtensibleObject
template<typename T >
bool hasExtension () const noexcept
 Checks if an extension exists given its static type. More...
 
template<typename T >
const T * getExtension () const noexcept
 Gets an extension given its static type. More...
 
template<typename T >
T * getExtension () noexcept
 Gets an extension given its static type. More...
 
const JsonValuegetGenericExtension (const std::string &extensionName) const noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue. More...
 
JsonValuegetGenericExtension (const std::string &extensionName) noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue. More...
 
template<typename T , typename... ConstructorArgumentTypes>
T & addExtension (ConstructorArgumentTypes &&... constructorArguments)
 Adds a statically-typed extension to this object. More...
 
template<typename T >
void removeExtension ()
 Removes a statically-typed extension from this object. More...
 

Detailed 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 MAY 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), matrix MUST NOT be present.

Definition at line 23 of file Node.h.

Member Data Documentation

◆ skin

int32_t CesiumGltf::Node::skin = -1

The index of the skin referenced by this node.

When a skin is referenced by a node within a scene, all joints used by the skin MUST belong to the same scene. When defined, mesh MUST also be defined.

Definition at line 43 of file Node.h.


The documentation for this struct was generated from the following file: