Class Scene

Paket: @aspose/3d (v24.12.0)

Scene är den rotbehållare för ett 3D-scen‑graf i @aspose/3d. Den innehåller nodhierarkin, metadata och animationsklipp, och tillhandahåller det primära I/O‑gränssnittet för att läsa in och spara 3D‑filer.

export class Scene extends SceneObject

ImageRenderOptions

A3DObject ← SceneObject ← Scene

ImageRenderOptions

Läs in en OBJ‑fil och skriv ut antalet barnnoder i rotens scengraf.

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

ImageRenderOptionsImageRenderOptionsImageRenderOptions
rootNodeNodeRotnoden i scen‑grafen. All geometri, ljus, kameror och andra objekt är fästa under denna nod.
assetInfoAssetInfoMetadata om tillgången, inklusive skapare, skapelsedatum, enhetsinformation och koordinatsystem.
animationClipsAnimationClip[]Samlingen av animationsklipp som definierats i scenen. Varje klipp innehåller animationskurvor för noder och deras egenskaper.
subScenesScene[]Under‑scener inbäddade i denna scen. Används av format som FBX som stödjer scenhierarkier. Obs: Denna egenskap är inte bekräftad i den nuvarande API‑ytan och kan vara otillgänglig.

ImageRenderOptions

open(fileOrStream, options?)

Läser in en 3D‑fil från en filsökväg eller en Buffer i scenen, vilket ersätter eventuellt befintligt innehåll.

open(fileOrStream: string | Buffer, options?: LoadOptions): void

ImageRenderOptions

fileOrStream string | Buffer

Sökvägen till källfilen, eller en Buffer som innehåller de råa fildata.

options LoadOptions (valfritt)

Format-specifika laddningsalternativ. Pass undefined för att använda standardvärden.

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

Laddar en 3D-fil från minnet Buffer. Detta är den föredragna överlagringen när fildatan redan har lästs in i minnet.

openFromBuffer(buffer: Buffer, options?: LoadOptions): void

ImageRenderOptions

buffer Buffer

En Node.js Buffer som innehåller hela filinnehållet.

options LoadOptions (valfritt)

Format-specifika laddningsalternativ.

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

Sparar scenen till en fil. Formatet härleds från filändelsen, eller så kan du skicka ett format‑specifikt SaveOptions instans (eller en FileFormat singleton) som det andra argumentet.

save(fileOrStream: string, formatOrOptions?: FileFormat | SaveOptions, options?: SaveOptions): void

ImageRenderOptions

fileOrStream string

Destinationsfilens sökväg. Filändelsen bestämmer utdataformatet (t.ex., .glb → GLB, .gltf → glTF JSON, .stl → STL).

formatOrOptions FileFormat | SaveOptions (valfritt)

Antingen en format‑singleton (t.ex., GltfFormat.getInstance()) SaveOptions subklass.

options SaveOptions (valfritt)

Formatspecifika sparalternativ när en FileFormat skickas som det andra argumentet.

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)

Skapar ett nytt namngivet animationsklipp och lägger till det i scenens animationClips samling.

createAnimationClip(name: string): AnimationClip

ImageRenderOptions

name string

Ett beskrivande namn för det nya animationsklippet.

ImageRenderOptions

AnimationClip

Det nyss skapade AnimationClip instans.

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}`);
 Svenska