Class Scene
Пакет: @aspose/3d (v24.12.0)
Scene — корневой контейнер для 3D графа сцены в @aspose/3d. Он содержит иерархию узлов, метаданные и клипы анимации, а также предоставляет основной интерфейс ввода/вывода для загрузки и сохранения 3D файлов.
export class Scene extends SceneObjectImageRenderOptions
A3DObject ← SceneObject ← Scene
ImageRenderOptions
Загрузите файл 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}`);ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
rootNode | Node | Корневой узел графа сцены. Вся геометрия, источники света, камеры и другие объекты прикреплены к этому узлу. |
assetInfo | AssetInfo | Метаданные об объекте, включая создателя, время создания, информацию о единицах измерения и систему координат. |
animationClips | AnimationClip[] | Коллекция анимационных клипов, определённых в сцене. Каждый клип содержит анимационные кривые для узлов и их свойств. |
subScenes | Scene[] | Подсцены, встроенные в эту сцену. Используется форматами, такими как FBX, которые поддерживают иерархию сцен. Примечание: Это свойство не подтверждено в текущем API и может быть недоступно. |
ImageRenderOptions
open(fileOrStream, options?)
Загружает 3D‑файл из пути к файлу или Buffer в сцену, заменяя всё существующее содержимое.
open(fileOrStream: string | Buffer, options?: LoadOptions): voidImageRenderOptions
fileOrStream string | Buffer
Путь к исходному файлу или Buffer содержащий необработанные данные файла.
options LoadOptions (необязательно)
Опции загрузки, специфичные для формата. Передайте undefined чтобы использовать значения по умолчанию.
ImageRenderOptions
void
ImageRenderOptions
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): voidImageRenderOptions
buffer Buffer
Node.js Buffer содержащий полное содержимое файла.
options LoadOptions (необязательно)
Опции загрузки, специфичные для формата.
ImageRenderOptions
void
ImageRenderOptions
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): voidImageRenderOptions
fileOrStream string
Путь к целевому файлу. Расширение определяет формат вывода (например,)., .glb → GLB, .gltf → glTF JSON, .stl → STL).
formatOrOptions FileFormat | SaveOptions (необязательно)
Либо одиночный формат (например,., GltfFormat.getInstance()) или специфичный для формата SaveOptions подкласс.
options SaveOptions (необязательно)
Опции сохранения, зависящие от формата, когда FileFormat передаётся в качестве второго аргумента.
ImageRenderOptions
void
ImageRenderOptions
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): AnimationClipImageRenderOptions
name string
Описательное имя для нового анимационного клипа.
ImageRenderOptions
AnimationClip
Новосозданный AnimationClip экземпляр.
ImageRenderOptions
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}`);