Class Node

Пакет: @aspose/3d (v24.12.0)

Узел представляет собой именованный элемент в иерархии графа сцены. Каждый узел имеет локальное преобразование, может содержать дочерние узлы и несёт ноль или более Entity объектов, таких как сетки, камеры или источники света.

export class Node extends SceneObject

ImageRenderOptions

A3DObject ← SceneObject ← Node

ImageRenderOptions

Создайте родительский узел, присоедините к нему два дочерних узла и пройдите по полной иерархии по имени.

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

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
namestringИмя этого узла. Используется для идентификации узла в графе сцены.
parentNode`Nodenull`
childNodesNode[]Массив прямых дочерних узлов, присоединённых к этому узлу.
entitiesEntity[]Список сущностей (меши, камеры, источники света и т.п.), присоединённых к этому узлу.
materialsMaterial[]Список материалов, связанных с этим узлом.
transformTransformЛокальное преобразование этого узла, с translation: Vector3, rotation: Quaternion, и scaling: Vector3 компонентами.
globalTransformGlobalTransformТолько для чтения. Преобразование в мировом пространстве, вычисляемое умножением всех преобразований предков до корня.
visiblebooleanОтображается ли этот узел и его поддерево. По умолчанию. true.
excludedbooleanImageRenderOptions true, узел и его поддерево исключаются из экспорта. По умолчанию — false.
entity`Entityundefined`

ImageRenderOptions

addChildNode(node)

Добавляет существующий Node экземпляр в качестве прямого дочернего элемента этого узла.

addChildNode(node: Node): void

ImageRenderOptions

node Node

Узел для присоединения. Узел переопределяется от своего текущего родителя к этому узлу.

ImageRenderOptions

void

ImageRenderOptions

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): Node

ImageRenderOptions

name string (необязательно)

Имя нового дочернего узла.

entity Entity (необязательно)

Сущность, которую нужно присоединить к новому узлу, например a Mesh экземпляр.

material Material (необязательно)

Материал, который следует связать с новым узлом.

ImageRenderOptions

Node

Новосозданный дочерний узел.

ImageRenderOptions

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): Matrix4

ImageRenderOptions

withGeometricTransform boolean

ImageRenderOptions true, включает геометрическое преобразование в результат.

ImageRenderOptions

Matrix4

4×4 матрица трансформации в мировом пространстве.

ImageRenderOptions

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

ImageRenderOptions

BoundingBox

Ограничивающий параллелепипед, выровненный по осям, охватывающий всю геометрию под этим узлом.

ImageRenderOptions

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): void

ImageRenderOptions

node Node

Исходный узел, содержимое которого объединяется с этим узлом.

ImageRenderOptions

void

ImageRenderOptions

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}`);
}
 Русский