Class Scene
Balíček: @aspose/3d (v24.12.0)
Scene je kořenovým kontejnerem pro 3D scénový graf v @aspose/3d. Uchovává hierarchii uzlů, metadata a animační klipy a poskytuje primární I/O rozhraní pro načítání a ukládání 3D souborů.
export class Scene extends SceneObjectEnumerations
A3DObject ← SceneObject ← Scene
Enumerations
Načtěte soubor OBJ a vypište počet podřízených uzlů v kořeni scénového grafu.
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 | Kořenový uzel scénového grafu. Veškerá geometrie, světla, kamery a další objekty jsou připojeny pod tímto uzlem. |
assetInfo | AssetInfo | Metadata o assetu, včetně tvůrce, času vytvoření, informací o jednotkách a souřadnicovém systému. |
animationClips | AnimationClip[] | Sbírka animačních klipů definovaných ve scéně. Každý klip obsahuje animační křivky pro uzly a jejich vlastnosti. |
subScenes | Scene[] | Podscény vložené v této scéně. Používá se ve formátech jako FBX, které podporují hierarchie scén. Poznámka: Tato vlastnost není v současném rozhraní API potvrzena a možná nebude k dispozici. |
Enumerations
open(fileOrStream, options?)
Načte 3D soubor z cesty k souboru nebo z Buffer do scény, přičemž nahradí veškerý existující obsah.
open(fileOrStream: string | Buffer, options?: LoadOptions): voidEnumerations
fileOrStream string | Buffer
Cesta k zdrojovému souboru, nebo Buffer obsahující surová data souboru.
options LoadOptions (volitelné)
Formátově specifické možnosti načítání. Pass undefined pro použití výchozích hodnot.
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?)
Načte 3D soubor z paměti Buffer. Toto je preferované přetížení, když jsou data souboru již načtena do paměti.
openFromBuffer(buffer: Buffer, options?: LoadOptions): voidEnumerations
buffer Buffer
Node.js Buffer obsahující kompletní obsah souboru.
options LoadOptions (volitelné)
Formátově specifické možnosti načítání.
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?)
Uloží scénu do souboru. Formát je odvozen z přípony souboru, nebo můžete předat formátově specifický SaveOptions instanci (nebo FileFormat singleton) jako druhý argument.
save(fileOrStream: string, formatOrOptions?: FileFormat | SaveOptions, options?: SaveOptions): voidEnumerations
fileOrStream string
Cesta k cílovému souboru. Přípona určuje výstupní formát (např., .glb → GLB, .gltf → glTF JSON, .stl → STL).
formatOrOptions FileFormat | SaveOptions (volitelné)
Buď formátový singleton (např., GltfFormat.getInstance()) SaveOptions nebo formátově specifický podtřídu.
options SaveOptions (volitelné)
Formátově specifické možnosti uložení, když je FileFormat je předán jako druhý argument.
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)
Vytvoří nový pojmenovaný animační klip a přidá jej do scény animationClips kolekce.
createAnimationClip(name: string): AnimationClipEnumerations
name string
Popisný název nového animačního klipu.
Enumerations
AnimationClip
Nově vytvořený AnimationClip instanci.
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}`);