Class Node
Пакет: @aspose/3d (v24.12.0)
Възелът представлява именуван елемент в йерархията на графа на сцената. Всеки възел има локална трансформация, може да съдържа дъщерни възли и носи нула или повече Entity обекти като мрежи, камери или светлини.
export class Node extends SceneObjectExamples
A3DObject ← SceneObject ← Node
Examples
Създайте родителски възел, прикрепете към него два дъщерни възела и обходете цялата йерархия по име.
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 | Името на този възел. Използва се за идентифициране на възела в графа на сцената. |
parentNode | `Node | null` |
childNodes | Node[] | Масив от директни дъщерни възли, прикрепени към този възел. |
entities | Entity[] | Списъкът с обекти (мрежи, камери, светлини и др.), прикрепени към този възел. |
materials | Material[] | Списъкът с материали, свързани с този възел. |
transform | Transform | Локалната трансформация на този възел, с translation: Vector3, rotation: Quaternion, и scaling: Vector3 компоненти. |
globalTransform | GlobalTransform | Само за четене. Трансформацията в световното пространство, изчислена чрез умножаване на всички трансформации на предците до корена. |
visible | boolean | Дали този възел и неговото поддърво се рендерират. По подразбиране е true. |
excluded | boolean | Examples true, възелът и неговото поддърво са изключени от експорта. По подразбиране е false. |
entity | `Entity | undefined` |
Examples
addChildNode(node)
Добавя съществуващ Node екземпляр като директно дете на този възел.
addChildNode(node: Node): voidExamples
node Node
Възелът, който да се прикрепи. Възелът се премествa от текущия си родител към този възел.
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?)
Създава нов Node, по желание с име, обект и материал, и го добавя като дете на този възел.
createChildNode(name?: string, entity?: Entity, material?: Material): NodeExamples
name string (по избор)
Името за новия дъщерен възел.
entity Entity (по избор)
Обект за прикрепване към новия възел, например Mesh екземпляр.
material Material (по избор)
Материал, който да се асоциира с новия възел.
Examples
Node
Новосъздаденият дъщерен възел.
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)
Изчислява и връща матрицата за трансформация в световното пространство за този възел. Предайте true за включване на геометричното трансформационно отместване, съхранено в възела (използвано от някои FBX експортери).
evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4Examples
withGeometricTransform boolean
Examples true, включва геометричната трансформация в резултата.
Examples
Matrix4
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()
Изчислява осево-ориентираната ограничителна кутия на този възел и всички негови наследници в световното пространство.
getBoundingBox(): BoundingBoxExamples
BoundingBox
Осево-ориентираната ограничителна кутия, обхващаща цялата геометрия под този възел.
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)
Обединява съдържанието на друг възел (неговите обекти, материали и деца) в този възел и премахва изходния възел от сцената.
merge(node: Node): voidExamples
node Node
Изходният възел, чийто съдържание се слива в този възел.
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}`);
}