FileFormat — Aspose.3D FOSS for .NET

FileFormat klasa je registar svih podržanih 3D formata datoteka. Ne postoje javne imenovane konstante za pojedinačne formate — instance formata dobivaju se u vrijeme izvođenja putem statičkih metoda otkrivanja ili Formats kolekcija.

Registar formata

Podržani formati su interno registrirani. Koristite sljedeći API za pristup njima:

FileFormat.FormatsIList<FileFormat>Sve registrirane instance formata
FileFormat.Detect(string filePath)FileFormatOtkriva format iz putanje datoteke (prema ekstenziji i sadržaju)
FileFormat.GetFormatByExtension(string ext)FileFormatVraća format za zadanu ekstenziju datoteke (npr. ".obj")

Registrirani formati uključuju: OBJ, STL, glTF/GLB, FBX, COLLADA, PLY i 3MF.

Tip povratka
Detect(string filePath)FileFormatOtkriva format iz putanje datoteke
GetFormatByExtension(string ext)FileFormatVraća format koji odgovara ekstenziji
CreateLoadOptions()LoadOptionsVraća opcije učitavanja prikladne za ovu instancu formata
CreateSaveOptions()SaveOptionsVraća opcije spremanja prikladne za ovu instancu formata

Napomena o CreateLoadOptions() / CreateSaveOptions(): Ove metode rade ispravno kada se pozivaju na instance formata koje vraća Detect() ili GetFormatByExtension() — svaka registrirana format nadjačava ove metode vlastitom implementacijom. Pozivanje istih na sirovoj baznoj klasi FileFormat instanca (nije dobivena putem registra) baca NotImplementedException.

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

// Detect format from a file path
var format = FileFormat.Detect("model.obj");
Console.WriteLine(format.Extension); // ".obj"

// Get load options from the detected format instance
var loadOpts = format.CreateLoadOptions(); // returns ObjLoadOptions via polymorphism

// Load and save — format inferred from extension
var scene = new Scene();
scene.Open("model.obj");
scene.Save("output.glb");  // binary GLB inferred from .glb extension

// Enumerate all registered formats
foreach (var fmt in FileFormat.Formats)
    Console.WriteLine($"{fmt.Extension}: import={fmt.CanImport}, export={fmt.CanExport}");

Vidi također

 Hrvatski