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 SceneObjectExamples
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
| Examples | Examples | Examples |
|---|---|---|
name | string | Le nom de ce nœud. Utilisé pour identifier le nœud dans le graphe de scène. |
parentNode | `Node | null` |
childNodes | Node[] | Un tableau de nœuds enfants directs attachés à ce nœud. |
entities | Entity[] | La liste des entités (meshes, caméras, lumières, etc.) attachées à ce nœud. |
materials | Material[] | La liste des matériaux associés à ce nœud. |
transform | Transform | La transformation locale de ce nœud, avec translation: Vector3, rotation: Quaternion, et scaling: Vector3 composants. |
globalTransform | GlobalTransform | Lecture seule. La transformation en espace mondial, calculée en multipliant toutes les transformations des ancêtres jusqu’à la racine. |
visible | boolean | Indique si ce nœud et son sous‑arbre sont rendus. La valeur par défaut est true. |
excluded | boolean | Examples true, le nœud et son sous‑arbre sont exclus de l’exportation. La valeur par défaut est false. |
entity | `Entity | undefined` |
Examples
addChildNode(node)
Ajoute un(e) existant(e) Node instance en tant qu’enfant direct de ce nœud.
addChildNode(node: Node): voidExamples
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): NodeExamples
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): Matrix4Examples
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(): BoundingBoxExamples
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): voidExamples
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}`);
}