Nodes are the objects that comprise a Scene.

Each node may have one or more children, and a transform (position, rotation, and scale) that applies to all of its descendants. A node may also reference (or "instantiate") other resources at its location, including Mesh, Camera, Light, and Skin properties. A node cannot be part of more than one Scene.

A node's local transform is represented with array-like objects, intended to be compatible with gl-matrix, or with the toArray/fromArray methods of libraries like three.js and babylon.js.

Usage:

const node = doc.createNode('myNode')
    .setMesh(mesh)
    .setTranslation([0, 0, 0])
    .addChild(otherNode);

References:

Hierarchy

Properties

propertyType: NODE

Property type.

Methods

  • copy(other: Node, resolve?: <T>(t: T) => T): Node
  • dispatchEvent(event: BaseEvent): Node
  • Events.

  • dispose(): void
  • Removes both inbound references to and outbound references from this object. At the end of the process the object holds no references, and nothing holds references to it. A disposed object is not reusable.

  • equals(other: Node, skip?: Set<string>): boolean
  • Returns true if two properties are deeply equivalent, recursively comparing the attributes of the properties. Optionally, a 'skip' set may be included, specifying attributes whose values should not be considered in the comparison.

    Example: Two Primitives are equivalent if they have accessors and materials with equivalent content — but not necessarily the same specific accessors and materials.

  • getDefaults(): Nullable<INode>
  • getExtension<Prop>(name: string): Prop
  • getExtras(): Record<string, unknown>
  • Returns a reference to the Extras object, containing application-specific data for this Property. Extras should be an Object, not a primitive value, for best portability.

  • getMatrix(): mat4
  • getName(): string
  • Returns the name of this property. While names are not required to be unique, this is encouraged, and non-unique names will be overwritten in some tools. For custom data about a property, prefer to use Extras.

  • getParentNode(): Node
  • getRotation(): vec4
  • getScale(): vec3
  • getTranslation(): vec3
  • getWeights(): number[]
  • getWorldMatrix(): mat4
  • getWorldRotation(): vec4
  • getWorldScale(): vec3
  • getWorldTranslation(): vec3
  • init(): void
  • isDisposed(): boolean
  • Returns true if the node has been permanently removed from the graph.

  • listChildren(): Node[]
  • listExtensions(): ExtensionProperty<IProperty>[]
  • listParents(): Property<IProperty>[]
  • Returns a list of all properties that hold a reference to this property. For example, a material may hold references to various textures, but a texture does not hold references to the materials that use it.

    It is often necessary to filter the results for a particular type: some resources, like Accessors, may be referenced by different types of properties. Most properties include the Root as a parent, which is usually not of interest.

    Usage:

    const materials = texture
        .listParents()
        .filter((p) => p instanceof Material)
    
  • setExtension<Prop>(name: string, extensionProperty: Prop): Node
  • setExtras(extras: Record<string, unknown>): Node
  • setMatrix(matrix: mat4): Node
  • setName(name: string): Node
  • Sets the name of this property. While names are not required to be unique, this is encouraged, and non-unique names will be overwritten in some tools. For custom data about a property, prefer to use Extras.

  • setRotation(rotation: vec4): Node
  • setScale(scale: vec3): Node
  • setTranslation(translation: vec3): Node
  • setWeights(weights: number[]): Node
  • traverse(fn: (node: Node) => void): Node
Function symbol, f(📦) → 📦, where the argument and output are a box labeled 'glTF'.

Made by Don McCurdy • TypeDoc documentation • Copyright 2023, MIT license