Class Node
Πακέτο: @aspose/3d (v24.12.0)
Κόμβος αντιπροσωπεύει ένα ονομαστικό στοιχείο στην ιεραρχία του γραφήματος σκηνής. Κάθε κόμβος έχει τοπικό μετασχηματισμό, μπορεί να περιέχει θυγατρικούς κόμβους και μεταφέρει μηδέν ή περισσότερα Entity αντικείμενα όπως meshes, κάμερες ή φώτα.
export class Node extends SceneObjectImageRenderOptions
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
name | string | Το όνομα αυτού του κόμβου. Χρησιμοποιείται για την ταυτοποίηση του κόμβου μέσα στο γράφημα σκηνής. |
parentNode | `Node | null` |
childNodes | Node[] | Ένας πίνακας άμεσων θυγατρικών κόμβων που είναι συνδεδεμένοι σε αυτόν τον κόμβο. |
entities | Entity[] | Η λίστα των οντοτήτων (meshes, κάμερες, φώτα κ.λπ.) που είναι συνδεδεμένες σε αυτόν τον κόμβο. |
materials | Material[] | Η λίστα των υλικών που σχετίζονται με αυτόν τον κόμβο. |
transform | Transform | Ο τοπικός μετασχηματισμός αυτού του κόμβου, με translation: Vector3, rotation: Quaternion, και scaling: Vector3 συστατικά. |
globalTransform | GlobalTransform | Μόνο για ανάγνωση. Ο μετασχηματισμός σε παγκόσμιο χώρο, υπολογιζόμενος με τον πολλαπλασιασμό όλων των μετασχηματισμών προγόνων μέχρι τη ρίζα. |
visible | boolean | Καθορίζει αν αυτός ο κόμβος και το υποδέντρο του αποδίδονται. Η προεπιλογή είναι true. |
excluded | boolean | ImageRenderOptions true, ο κόμβος και το υποδέντρο του εξαιρούνται από την εξαγωγή. Η προεπιλογή είναι false. |
entity | `Entity | undefined` |
ImageRenderOptions
addChildNode(node)
Προσθέτει ένα υπάρχον Node instance ως άμεσο παιδί αυτού του κόμβου.
addChildNode(node: Node): voidImageRenderOptions
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): NodeImageRenderOptions
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): Matrix4ImageRenderOptions
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(): BoundingBoxImageRenderOptions
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): voidImageRenderOptions
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}`);
}