Class Node

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

Un nœud représente un élément nommé dans la hiérarchie du graphe de scène. Chaque nœud possède une transformation locale, peut contenir des nœuds enfants et transporte zéro ou plusieurs Entity objets tels que des meshes, des caméras ou des lumières.

export class Node extends SceneObject

Examples

A3DObject ← SceneObject ← Node

Examples

Créez un nœud parent, attachez deux nœuds enfants à celui‑ci, et parcourez la hiérarchie complète par 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

Examples

ExamplesExamplesExamples
namestringLe nom de ce nœud. Utilisé pour identifier le nœud dans le graphe de scène.
parentNode`Nodenull`
childNodesNode[]Un tableau de nœuds enfants directs attachés à ce nœud.
entitiesEntity[]La liste des entités (meshes, caméras, lumières, etc.) attachées à ce nœud.
materialsMaterial[]La liste des matériaux associés à ce nœud.
transformTransformLa transformation locale de ce nœud, avec translation: Vector3, rotation: Quaternion, et scaling: Vector3 composants.
globalTransformGlobalTransformLecture seule. La transformation en espace mondial, calculée en multipliant toutes les transformations des ancêtres jusqu’à la racine.
visiblebooleanIndique si ce nœud et son sous‑arbre sont rendus. La valeur par défaut est true.
excludedbooleanExamples true, le nœud et son sous‑arbre sont exclus de l’exportation. La valeur par défaut est false.
entity`Entityundefined`

Examples

addChildNode(node)

Ajoute un(e) existant(e) Node instance en tant qu’enfant direct de ce nœud.

addChildNode(node: Node): void

Examples

node Node

Le nœud à attacher. Le nœud est reparenté de son parent actuel vers ce nœud.

Examples

void

Examples

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?)

Crée un nouveau Node, éventuellement avec un nom, une entité et un matériau, et l’ajoute comme enfant de ce nœud.

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

Examples

name string (optionnel)

Le nom du nouveau nœud enfant.

entity Entity (optionnel)

Une entité à attacher au nouveau nœud, par exemple un Mesh instance.

material Material (optionnel)

Un matériau à associer au nouveau nœud.

Examples

Node

Le nœud enfant nouvellement créé.

Examples

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)

Calcule et renvoie la matrice de transformation en espace mondial pour ce nœud. Passez true pour inclure le décalage de transformation géométrique stocké sur le nœud (utilisé par certains exportateurs FBX).

evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4

Examples

withGeometricTransform boolean

Examples true, inclut la transformation géométrique dans le résultat.

Examples

Matrix4

La matrice de transformation en espace mondial 4×4.

Examples

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()

Calcule la boîte englobante alignée sur les axes de ce nœud et de tous ses descendants en espace mondial.

getBoundingBox(): BoundingBox

Examples

BoundingBox

La boîte englobante alignée sur les axes qui englobe toute la géométrie sous ce nœud.

Examples

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)

Fusionne le contenu d’un autre nœud (ses entités, matériaux et enfants) dans ce nœud et supprime le nœud source de la scène.

merge(node: Node): void

Examples

node Node

Le nœud source dont le contenu est fusionné dans ce nœud.

Examples

void

Examples

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}`);
}
 Français