Class Node
Pakiet: @aspose/3d (v24.12.0)
Węzeł reprezentuje nazwany element w hierarchii grafu sceny. Każdy węzeł ma lokalną transform, może zawierać węzły potomne i niesie zero lub więcej Entity obiektów, takich jak meshes, cameras lub lights.
export class Node extends SceneObjectImageRenderOptions
A3DObject ← SceneObject ← Node
ImageRenderOptions
Utwórz węzeł nadrzędny, dołącz do niego dwa węzły potomne i przeglądaj pełną hierarchię po nazwie.
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 | Nazwa tego węzła. Używana do identyfikacji węzła w grafie sceny. |
parentNode | `Node | null` |
childNodes | Node[] | Tablica bezpośrednich węzłów potomnych podłączonych do tego węzła. |
entities | Entity[] | Lista jednostek (meshes, cameras, lights itp.) podłączonych do tego węzła. |
materials | Material[] | Lista materials powiązanych z tym węzłem. |
transform | Transform | Lokalna transformacja tego węzła, z translation: Vector3, rotation: Quaternion, oraz scaling: Vector3 komponentami. |
globalTransform | GlobalTransform | Tylko do odczytu. Transformacja w przestrzeni świata, obliczana przez mnożenie wszystkich transformacji przodków aż do korzenia. |
visible | boolean | Czy ten węzeł i jego poddrzewo są renderowane. Domyślnie jest true. |
excluded | boolean | ImageRenderOptions true, węzeł i jego poddrzewo są wykluczone z eksportu. Domyślnie jest false. |
entity | `Entity | undefined` |
ImageRenderOptions
addChildNode(node)
Dołącza istniejący Node instancję jako bezpośrednie dziecko tego węzła.
addChildNode(node: Node): voidImageRenderOptions
node Node
Węzeł do dołączenia. Węzeł jest przypisywany z bieżącego rodzica do tego węzła.
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?)
Tworzy nowy Node, opcjonalnie z nazwą, encją i materiałem, i dodaje go jako dziecko tego węzła.
createChildNode(name?: string, entity?: Entity, material?: Material): NodeImageRenderOptions
name string (opcjonalnie)
Nazwa nowego węzła potomnego.
entity Entity (opcjonalnie)
Encja do dołączenia do nowego węzła, na przykład Mesh instancja.
material Material (opcjonalnie)
Materiał do powiązania z nowym węzłem.
ImageRenderOptions
Node
Nowo utworzony węzeł potomny.
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)
Oblicza i zwraca macierz transformacji w przestrzeni świata dla tego węzła. Przekaż true aby uwzględnić offset transformacji geometrycznej przechowywany w węźle (używany przez niektóre eksportery FBX).
evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4ImageRenderOptions
withGeometricTransform boolean
ImageRenderOptions true, zawiera transformację geometryczną w wyniku.
ImageRenderOptions
Matrix4
4×4 macierz transformacji w przestrzeni światowej.
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()
Oblicza axis-aligned bounding box tego węzła i wszystkich jego potomków w przestrzeni światowej.
getBoundingBox(): BoundingBoxImageRenderOptions
BoundingBox
Axis-aligned bounding box obejmujący całą geometrię pod tym węzłem.
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)
Łączy zawartość innego węzła (jego encje, materiały i dzieci) z tym węzłem i usuwa węzeł źródłowy ze sceny.
merge(node: Node): voidImageRenderOptions
node Node
Węzeł źródłowy, którego zawartość jest scalana z tym węzłem.
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}`);
}