Class Node

الحزمة: @aspose/3d (v24.12.0)

العقدة تمثل عنصرًا مسمىً في تسلسل هرمي لرسم المشهد. كل عقدة لها تحويل محلي، يمكنها احتواء عقد فرعية، وتحمل صفر أو أكثر Entity كائنات مثل الشبكات، الكاميرات، أو الأضواء.

export class Node extends SceneObject

Properties

A3DObject ← SceneObject ← Node

Properties

أنشئ عقدة أصلية، أرفق عقدتين فرعيتين بها، وتصفح التسلسل الهرمي الكامل حسب الاسم.

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
namestringاسم هذه العقدة. يُستخدم لتحديد العقدة داخل رسم المشهد.
parentNode`Nodenull`
childNodesNode[]مصفوفة من العقد الفرعية المباشرة المرتبطة بهذه العقدة.
entitiesEntity[]قائمة الكيانات (الشبكات، الكاميرات، الأضواء، إلخ) المرتبطة بهذه العقدة.
materialsMaterial[]قائمة المواد المرتبطة بهذه العقدة.
transformTransformالتحويل المحلي لهذه العقدة، مع translation: Vector3, rotation: Quaternion,، و scaling: Vector3 المكوّنات.
globalTransformGlobalTransformللقراءة فقط. تحويل الفضاء العالمي، يُحسب بضرب جميع تحويلات الأسلاف حتى الجذر.
visiblebooleanما إذا كانت هذه العقدة وشجرتها الفرعية مُعروضة. القيمة الافتراضية هي true.
excludedbooleanProperties true,، تُستبعد العقدة وشجرتها الفرعية من التصدير. القيمة الافتراضية هي false.
entity`Entityundefined`

Properties

addChildNode(node)

يضيف موجودًا Node مثيلًا كطفل مباشر لهذه العقدة.

addChildNode(node: Node): void

Properties

node Node

العقدة المراد إرفاقها. يتم إعادة توطين العقدة من والدها الحالي إلى هذه العقدة.

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

يُنشئ جديدًا Node, اختياريًا باسم، كيان، ومادة، ويضيفه كطفل لهذه العقدة.

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

Properties

name string (اختياري)

الاسم للعقدة الفرعية الجديدة.

entity Entity (اختياري)

كيان لتوصيله بالعقدة الجديدة، مثلاً a Mesh مثيل.

material Material (اختياري)

مادة لربطها بالعقدة الجديدة.

Properties

Node

العقدة الفرعية التي تم إنشاؤها حديثًا.

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)

يحسب ويعيد مصفوفة التحويل في الفضاء العالمي لهذه العقدة. مرّر true لتضمين إزاحة التحويل الهندسي المخزنة على العقدة (يُستخدم من قبل بعض مُصدِّري FBX).

evaluateGlobalTransform(withGeometricTransform: boolean): Matrix4

Properties

withGeometricTransform boolean

Properties true, يتضمن التحويل الهندسي في النتيجة.

Properties

Matrix4

مصفوفة التحويل في الفضاء العالمي بحجم 4×4.

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

يحسب صندوق الحد المحاذي للمحاور لهذه العقدة وجميع الفروع التابعة لها في الفضاء العالمي.

getBoundingBox(): BoundingBox

Properties

BoundingBox

صندوق الحد المحاذي للمحاور الذي يحيط بجميع الهندسة تحت هذه العقدة.

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)

يدمج محتوى عقدة أخرى (كياناتها، موادها، وأطفالها) في هذه العقدة ويزيل العقدة المصدر من المشهد.

merge(node: Node): void

Properties

node Node

العقدة المصدر التي يتم دمج محتواها في هذه العقدة.

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}`);
}
 العربية