Class Node

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

Čvor predstavlja imenovani element u hijerarhiji grafika scene. Svaki čvor ima lokalnu transformaciju, može da sadrži podčvorove i nosi nula ili više Entity objekata kao što su mreže, kamere ili svetla.

export class Node extends SceneObject

A3DObject ← SceneObject ← Node

Kreirajte roditeljski čvor, prikačite dva čvora‑deca na njega i pređite kompletnu hijerarhiju po imenu.

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

namestringIme ovog čvora. Koristi se za identifikaciju čvora unutar grafika scene.
parentNode`Nodenull`
childNodesNode[]Niz direktnih podčvorova prikačenih na ovaj čvor.
entitiesEntity[]Lista entiteta (mreža, kamera, svetala, itd.) prikačenih na ovaj čvor.
materialsMaterial[]Lista materijala povezanih sa ovim čvorom.
transformTransformLokalna transformacija ovog čvora, sa translation: Vector3, rotation: Quaternion, i scaling: Vector3 komponentama.
globalTransformGlobalTransformSamo za čitanje. Transformacija u svetskom prostoru, izračunata množenjem svih transformacija pretka do korena.
visiblebooleanDa li se ovaj čvor i njegov podstablo renderuju. Podrazumevano je true.
excludedboolean
true, čvor i njegova podstabla su isključeni iz izvoza. Podrazumevano je false.
entity`Entityundefined`

addChildNode(node)

Dodaje postojeći Node instancu kao direktno dete ovog čvora.

addChildNode(node: Node): void

node Node

Čvor koji se prikači. Čvor se premesti iz svog trenutnog roditelja u ovaj čvor.

void

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

Kreira novi Node, po želji sa imenom, entitetom i materijalom, i dodaje ga kao dete ovom čvoru.

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

name string (opciono)

Ime za novi čvor‑dete.

entity Entity (opciono)

Entitet koji se prikači na novi čvor, na primer a Mesh instanca.

material Material (opciono)

Materijal koji se povezuje sa novim čvorom.

Node

Novokreirani podčvor.

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)

Izračunava i vraća matricu transformacije u svetskom prostoru za ovaj čvor. Proslijedite true da uključi geometrijski pomeraj transformacije pohranjen na čvoru (koristi ga neki FBX izvoznici).

evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4

withGeometricTransform boolean

true, uključuje geometrijsku transformaciju u rezultat.

Matrix4

4×4 matrica transformacije u svetskom prostoru.

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

Izračunava osovinski poravnatu granicu (bounding box) ovog čvora i svih njegovih potomaka u svetskom prostoru.

getBoundingBox(): BoundingBox

BoundingBox

Osovinski poravnata granica (bounding box) koja obuhvata svu geometriju ispod ovog čvora.

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)

Spaja sadržaj drugog čvora (njegove entitete, materijale i podčvorove) u ovaj čvor i uklanja izvorni čvor iz scene.

merge(node: Node): void

node Node

Izvorni čvor čiji se sadržaj spaja u ovaj čvor.

void

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}`);
}
 Српски