Class Node

Paquet: @aspose/3d (v24.12.0)

Un node representa un element anomenat en la jerarquia del gràfic d’escena. Cada node té una transformació local, pot contenir nodes fills i porta zero o més Entity objectes com ara malles, càmeres o llums.

export class Node extends SceneObject

Properties

A3DObject ← SceneObject ← Node

Properties

Crea un node pare, adjunta dos nodes fills a aquest, i recorre tota la jerarquia per nom.

import { Scene, Node } from '@aspose/3d';

const scene = new Scene();
const root = scene.rootNode;

const vehicle = root.createChildNode('vehicle');
const body = vehicle.createChildNode('body');
const wheel = vehicle.createChildNode('wheel_front_left');

function traverse(node: Node, depth = 0): void {
  console.log(' '.repeat(depth * 2) + node.name);
  for (const child of node.childNodes) {
    traverse(child, depth + 1);
  }
}

traverse(root);
// Output:
//   vehicle
//     body
//     wheel_front_left

Properties

PropertiesPropertiesProperties
namestringEl nom d’aquest node. S’utilitza per identificar el node dins del gràfic d’escena.
parentNode`Nodenull`
childNodesNode[]Una matriu de nodes fills directes adjuntats a aquest node.
entitiesEntity[]La llista d’entitats (malles, càmeres, llums, etc.) adjuntades a aquest node.
materialsMaterial[]La llista de materials associats a aquest node.
transformTransformLa transformació local d’aquest node, amb translation: Vector3, rotation: Quaternion, i scaling: Vector3 components.
globalTransformGlobalTransformNomés de lectura. La transformació en l’espai mundial, calculada multiplicant totes les transformacions dels avantpassats fins a l’arrel.
visiblebooleanSi aquest node i el seu subarbre es renderitzen. Per defecte és true.
excludedbooleanProperties true, el node i el seu subarbre s’exclouen de l’exportació. Per defecte és false.
entity`Entityundefined`

Properties

addChildNode(node)

Afegeix una existent Node instància com a fill directe d’aquest node.

addChildNode(node: Node): void

Properties

node Node

El node a adjuntar. El node es reassigna del seu pare actual a aquest node.

Properties

void

Properties

import { Scene, Node } from '@aspose/3d';

const scene = new Scene();
const parent = scene.rootNode.createChildNode('parent');
const child = new Node('child');
parent.addChildNode(child);
console.log(`Children of parent: ${parent.childNodes.length}`); // 1

createChildNode(name?, entity?, material?)

Crea un nou Node, opcionalment amb un nom, una entitat i un material, i l’afegeix com a fill d’aquest node.

createChildNode(name?: string, entity?: Entity, material?: Material): Node

Properties

name string (opcional)

El nom per al nou node fill.

entity Entity (opcional)

Una entitat per adjuntar al node nou, per exemple una Mesh instància.

material Material (opcional)

Un material per associar amb el node nou.

Properties

Node

El node fill acabat de crear.

Properties

import { Scene } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh ...
const meshNode = scene.rootNode.createChildNode('geometry', mesh);
console.log(`Node name: ${meshNode.name}`);
console.log(`Entities attached: ${meshNode.entities.length}`);

evaluateGlobalTransform(withGeometricTransform)

Calcula i retorna la matriu de transformació en l’espai mundial per a aquest node. Passa true per incloure el desplaçament de la transformació geomètrica emmagatzemat al node (utilitzat per alguns exportadors FBX).

evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4

Properties

withGeometricTransform boolean

Properties true, inclou la transformació geomètrica al resultat.

Properties

Matrix4

La matriu de transformació en l’espai mundial de 4×4.

Properties

import { Scene } from '@aspose/3d';

const scene = new Scene();
scene.open('model.fbx');
const node = scene.rootNode.childNodes[0];
const matrix = node.evaluateGlobalTransform(false);
console.log('World transform matrix computed.');

getBoundingBox()

Calcula la caixa delimitadora alineada amb els eixos d’aquest node i de tots els seus descendents en l’espai mundial.

getBoundingBox(): BoundingBox

Properties

BoundingBox

La caixa delimitadora alineada amb els eixos que envolta tota la geometria sota aquest node.

Properties

import { Scene } from '@aspose/3d';

const scene = new Scene();
scene.open('model.obj');
const bbox = scene.rootNode.getBoundingBox();
console.log(`Min: ${JSON.stringify(bbox.minimum)}`);
console.log(`Max: ${JSON.stringify(bbox.maximum)}`);

merge(node)

Fusiona el contingut d’un altre node (les seves entitats, materials i fills) en aquest node i elimina el node origen de l’escena.

merge(node: Node): void

Properties

node Node

El node d’origen el contingut del qual es fusiona en aquest node.

Properties

void

Properties

import { Scene } from '@aspose/3d';

const scene = new Scene();
scene.open('multi_part.fbx');

const root = scene.rootNode;
if (root.childNodes.length >= 2) {
  root.childNodes[0].merge(root.childNodes[1]);
  console.log(`Children after merge: ${root.childNodes.length}`);
}
 Català