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 SceneObjectProperties
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
| Properties | Properties | Properties |
|---|---|---|
name | string | El nom d’aquest node. S’utilitza per identificar el node dins del gràfic d’escena. |
parentNode | `Node | null` |
childNodes | Node[] | Una matriu de nodes fills directes adjuntats a aquest node. |
entities | Entity[] | La llista d’entitats (malles, càmeres, llums, etc.) adjuntades a aquest node. |
materials | Material[] | La llista de materials associats a aquest node. |
transform | Transform | La transformació local d’aquest node, amb translation: Vector3, rotation: Quaternion, i scaling: Vector3 components. |
globalTransform | GlobalTransform | Només de lectura. La transformació en l’espai mundial, calculada multiplicant totes les transformacions dels avantpassats fins a l’arrel. |
visible | boolean | Si aquest node i el seu subarbre es renderitzen. Per defecte és true. |
excluded | boolean | Properties true, el node i el seu subarbre s’exclouen de l’exportació. Per defecte és false. |
entity | `Entity | undefined` |
Properties
addChildNode(node)
Afegeix una existent Node instància com a fill directe d’aquest node.
addChildNode(node: Node): voidProperties
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): NodeProperties
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): Matrix4Properties
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(): BoundingBoxProperties
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): voidProperties
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}`);
}