Class Node

Balíček: @aspose/3d (v24.12.0)

Uzel představuje pojmenovaný prvek v hierarchii grafu scény. Každý uzel má lokální transformaci, může obsahovat podřízené uzly a nese nula nebo více Entity objektů, jako jsou sítě, kamery nebo světla.

export class Node extends SceneObject

Properties

A3DObject ← SceneObject ← Node

Properties

Vytvořte nadřazený uzel, připojte k němu dva podřízené uzly a projděte celou hierarchii podle názvu.

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

PropertiesPropertiesProperties
namestringNázev tohoto uzlu. Používá se k identifikaci uzlu v grafu scény.
parentNode`Nodenull`
childNodesNode[]Pole přímých podřízených uzlů připojených k tomuto uzlu.
entitiesEntity[]Seznam entit (sítě, kamery, světla atd.) připojených k tomuto uzlu.
materialsMaterial[]Seznam materiálů spojených s tímto uzlem.
transformTransformLokální transformace tohoto uzlu, s translation: Vector3, rotation: Quaternion, a scaling: Vector3 komponenty.
globalTransformGlobalTransformPouze pro čtení. Transformace ve světovém prostoru, vypočtená násobením všech transformací předků až po kořen.
visiblebooleanZda je tento uzel a jeho podstrom vykreslován. Výchozí hodnota je true.
excludedbooleanProperties true, uzel a jeho podstrom jsou vyloučeny z exportu. Výchozí je false.
entity`Entityundefined`

Properties

addChildNode(node)

Přidá existující Node instanci jako přímý podřízený tohoto uzlu.

addChildNode(node: Node): void

Properties

node Node

Uzel, který se má připojit. Uzel je přeřazen z aktuálního nadřazeného uzlu na tento uzel.

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

Vytvoří nový Node, volitelně s názvem, entitou a materiálem, a přidá jej jako podřízený tomuto uzlu.

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

Properties

name string (volitelný)

Název nového podřízeného uzlu.

entity Entity (volitelný)

Entita, kterou připojit k novému uzlu, například Mesh instance.

material Material (volitelný)

Materiál, který se má přiřadit k novému uzlu.

Properties

Node

Nově vytvořený podřízený uzel.

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)

Vypočítá a vrátí transformační matici ve světovém prostoru pro tento uzel. Předávejte true pro zahrnutí geometrického posunu transformace uloženého v uzlu (používaného některými exportéry FBX).

evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4

Properties

withGeometricTransform boolean

Properties true, zahrnuje geometrickou transformaci ve výsledku.

Properties

Matrix4

4×4 matice transformace ve světovém prostoru.

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

Vypočítá osově zarovnaný ohraničující kvádr tohoto uzlu a všech jeho potomků ve světovém prostoru.

getBoundingBox(): BoundingBox

Properties

BoundingBox

Osově zarovnaný ohraničující kvádr obklopující veškerou geometrii pod tímto uzlem.

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)

Sloučí obsah jiného uzlu (jeho entity, materiály a podřízené uzly) do tohoto uzlu a odstraní zdrojový uzel ze scény.

merge(node: Node): void

Properties

node Node

Zdrojový uzel, jehož obsah je sloučen do tohoto uzlu.

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}`);
}
 Čeština