Class Scene
Пакет: @aspose/3d (v24.12.0)
Scene є кореневим контейнером для 3D графа сцени у @aspose/3d. Він містить ієрархію вузлів, метадані та кліпи анімації, і забезпечує основний I/O інтерфейс для завантаження та збереження 3D файлів.
export class Scene extends SceneObjectEnumerations
A3DObject ← SceneObject ← Scene
Enumerations
Завантажте файл OBJ і виведіть кількість дочірніх вузлів у корені графа сцени.
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('model.obj');
function countNodes(node: any): number {
let total = 1;
for (const child of node.childNodes) {
total += countNodes(child);
}
return total;
}
const nodeCount = countNodes(scene.rootNode);
console.log(`Total nodes in scene: ${nodeCount}`);Enumerations
| Enumerations | Enumerations | Enumerations |
|---|---|---|
rootNode | Node | Кореневий вузол графа сцени. Уся геометрія, освітлення, камери та інші об’єкти прикріплені до цього вузла. |
assetInfo | AssetInfo | Метадані про ресурс, включаючи автора, час створення, інформацію про одиниці вимірювання та систему координат. |
animationClips | AnimationClip[] | Колекція анімаційних кліпів, визначених у сцені. Кожен кліп містить криві анімації для вузлів та їхніх властивостей. |
subScenes | Scene[] | Підсцени, вбудовані в цю сцену. Використовується форматами, такими як FBX, які підтримують ієрархії сцен. Примітка: Ця властивість не підтверджена в поточному API і може бути недоступною. |
Enumerations
open(fileOrStream, options?)
Завантажує 3D‑файл за шляхом до файлу або Buffer у сцену, замінюючи будь‑який існуючий вміст.
open(fileOrStream: string | Buffer, options?: LoadOptions): voidEnumerations
fileOrStream string | Buffer
Шлях до вихідного файлу або Buffer що містить необроблені дані файлу.
options LoadOptions (необов’язково)
Параметри завантаження, специфічні для формату. Передайте undefined для використання значень за замовчуванням.
Enumerations
void
Enumerations
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('input.fbx');
console.log(`Loaded scene with root node: ${scene.rootNode.name}`);openFromBuffer(buffer, options?)
Завантажує 3D‑файл з пам’яті Buffer. Це переважний варіант перевантаження, коли дані файлу вже прочитані в пам’ять.
openFromBuffer(buffer: Buffer, options?: LoadOptions): voidEnumerations
buffer Buffer
Node.js Buffer що містить повний вміст файлу.
options LoadOptions (необов’язково)
Параметри завантаження, специфічні для формату.
Enumerations
void
Enumerations
import { Scene } from '@aspose/3d';
import { readFileSync } from 'fs';
const data = readFileSync('model.glb');
const scene = new Scene();
scene.openFromBuffer(data);
console.log(`Animation clips: ${scene.animationClips.length}`);save(fileOrStream, formatOrOptions?, options?)
Зберігає сцену у файл. Формат визначається за розширенням файлу, або ви можете передати формат-специфічний SaveOptions екземпляр (або FileFormat singleton) як другий аргумент.
save(fileOrStream: string, formatOrOptions?: FileFormat | SaveOptions, options?: SaveOptions): voidEnumerations
fileOrStream string
Шлях до файлу призначення. Розширення визначає формат виводу (наприклад,)., .glb → GLB, .gltf → glTF JSON, .stl → STL).
formatOrOptions FileFormat | SaveOptions (необов’язково)
Або одиничний формат (наприклад,., GltfFormat.getInstance()) SaveOptions підклас.
options SaveOptions (необов’язково)
Параметри збереження, специфічні для формату, коли FileFormat передається як другий аргумент.
Enumerations
void
Enumerations
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('input.obj');
// Format inferred from extension
scene.save('output.glb');
console.log('Scene saved as GLB.');createAnimationClip(name)
Створює новий іменований кліп анімації та додає його до сцени animationClips колекції.
createAnimationClip(name: string): AnimationClipEnumerations
name string
Описова назва нового анімаційного кліпу.
Enumerations
AnimationClip
Новостворений AnimationClip екземпляр.
Enumerations
import { Scene } from '@aspose/3d';
const scene = new Scene();
const clip = scene.createAnimationClip('WalkCycle');
console.log(`Created clip: ${clip.name}`);
console.log(`Total clips: ${scene.animationClips.length}`);