Class Node

Πακέτο: @aspose/3d (v24.12.0)

Κόμβος αντιπροσωπεύει ένα ονομαστικό στοιχείο στην ιεραρχία του γραφήματος σκηνής. Κάθε κόμβος έχει τοπικό μετασχηματισμό, μπορεί να περιέχει θυγατρικούς κόμβους και μεταφέρει μηδέν ή περισσότερα Entity αντικείμενα όπως meshes, κάμερες ή φώτα.

export class Node extends SceneObject

ImageRenderOptions

A3DObject ← SceneObject ← Node

ImageRenderOptions

Δημιουργήστε ένα γονικό node, συνδέστε δύο θυγατρικά nodes σε αυτό και διασχίστε ολόκληρη την ιεραρχία με βάση το όνομα.

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[]Η λίστα των οντοτήτων (meshes, κάμερες, φώτα κ.λπ.) που είναι συνδεδεμένες σε αυτόν τον κόμβο.
materialsMaterial[]Η λίστα των υλικών που σχετίζονται με αυτόν τον κόμβο.
transformTransformΟ τοπικός μετασχηματισμός αυτού του κόμβου, με translation: Vector3, rotation: Quaternion, και scaling: Vector3 συστατικά.
globalTransformGlobalTransformΜόνο για ανάγνωση. Ο μετασχηματισμός σε παγκόσμιο χώρο, υπολογιζόμενος με τον πολλαπλασιασμό όλων των μετασχηματισμών προγόνων μέχρι τη ρίζα.
visiblebooleanΚαθορίζει αν αυτός ο κόμβος και το υποδέντρο του αποδίδονται. Η προεπιλογή είναι true.
excludedbooleanImageRenderOptions true, ο κόμβος και το υποδέντρο του εξαιρούνται από την εξαγωγή. Η προεπιλογή είναι false.
entity`Entityundefined`

ImageRenderOptions

addChildNode(node)

Προσθέτει ένα υπάρχον Node instance ως άμεσο παιδί αυτού του κόμβου.

addChildNode(node: Node): void

ImageRenderOptions

node Node

Το node προς σύνδεση. Το 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 (προαιρετικό)

Το όνομα για το νέο θυγατρικό node.

entity Entity (προαιρετικό)

Μια οντότητα για επισύναψη στον νέο κόμβο, για παράδειγμα μια 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)

Υπολογίζει και επιστρέφει τον πίνακα μετασχηματισμού σε παγκόσμιο χώρο για αυτόν τον κόμβο. Pass 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()

Υπολογίζει το πλαίσιο περιβάλλοντος ευθυγραμμισμένο με τους άξονες (axis-aligned bounding box) αυτού του κόμβου και όλων των απογόνων του σε παγκόσμιο χώρο.

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}`);
}
 Ελληνικά