Scene — Aspose.3D FOSS for Java
Example
Example Scene clasa în Aspose.3D servește ca container rădăcină pentru conținut 3D, gestionând obiectele de nivel superior și permițând gestionarea relațiilor părinte/copil pentru ierarhia scenei. Oferă acces la nodurile rădăcină și subscenele, constituind punctul de intrare pentru încărcarea, construirea și salvarea scenelor 3D.
import com.aspose.threed.Scene;
// Create an empty scene
Scene scene = new Scene();
// Access the root node via getter method
Node root = scene.getRootNode();Example
Example Scene clasa poate fi instanțiată fără argumente pentru a crea o scenă goală, sau cu parametri opționali.
| Example | Example | Example |
|---|---|---|
entity | Entity | Entitate opțională de atașat la nodul rădăcină la crearea |
parentScene | Scene | Scenă părinte opțională (pentru sub-scene); necesită un nume |
name | String | Nume scenă (utilizat doar cu constructorul cu două argumente Scene(Scene, String) constructor) |
import com.aspose.threed.Scene;
// Empty scene
Scene scene = new Scene();
// Scene with an initial entity
Scene scene = new Scene(new Mesh());
// Access the root node (getter method)
Node root = scene.getRootNode();Metode de clasă
| Example | Tip de returnare | Example |
|---|---|---|
Scene.fromFile(String filePath) | Scene | Încarcă o scenă din calea de fișier specificată, detectând automat formatul. |
Scene.fromFile(String filePath, LoadOptions options) | Scene | Încarcă o scenă cu opțiuni de încărcare specifice formatului. |
import com.aspose.threed.Scene;
// Load from file (format detected from extension)
Scene scene = Scene.fromFile("model.obj");
// Load with options
ObjLoadOptions opts = new ObjLoadOptions();
Scene scene = Scene.fromFile("model.obj", opts);Example
Toate proprietățile sunt accesate prin metode getter/setter.
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
rootNode | Node | getRootNode() | – | Nodul rădăcină al ierarhiei scenei |
subScenes | List<Scene> | getSubScenes() | – | Sub-scene imbricate în această scenă |
assetInfo | AssetInfo | getAssetInfo() | setAssetInfo(AssetInfo) | Metadatele activului, cum ar fi autorul, data creării și unitățile |
animationClips | List<AnimationClip> | getAnimationClips() | – | Clipuri de animație definite în scenă |
currentAnimationClip | AnimationClip | getCurrentAnimationClip() | setCurrentAnimationClip(AnimationClip) | Clipul de animație activ în prezent |
library | List<A3DObject> | getLibrary() | – | Obiecte de metadate definite de utilizator atașate scenei |
name | String | getName() | setName(String) | Numele obiectului scenei |
properties | PropertyCollection | getProperties() | – | Proprietăți personalizate atașate scenei |
Example
| Example | Tip de returnare | Example |
|---|---|---|
save(String filePath) | void | Salvează scena într-un fișier; formatul este dedus din extensie |
save(String filePath, FileFormat format) | void | Salvează scena într-un fișier în formatul specificat FileFormat |
save(String filePath, SaveOptions options) | void | Salvează scena utilizând opțiuni de salvare specifice formatului |
open(String filePath) | void | Deschide un fișier în această scenă; formatul este dedus din extensie |
open(String filePath, LoadOptions options) | void | Deschide un fișier cu opțiuni de încărcare specifice formatului |
getProperty(String name) | Object | Obține valoarea unei proprietăți după nume |
findProperty(String name) | Property | Găsește o proprietate după nume |
createAnimationClip(String name) | AnimationClip | Creează un nou clip de animație denumit și îl adaugă în scenă |
getAnimationClip(String name) | AnimationClip | Găsește un clip de animație existent după nume, sau null dacă nu este găsit |
clear() | void | Șterge tot conținutul din scenă |
Example
Creează o scenă, adaugă un nod mesh și salvează în GLB:
import com.aspose.threed.Scene;
import com.aspose.threed.FileFormat;
// Create scene and mesh
Scene scene = new Scene();
Mesh mesh = new Mesh();
mesh.getControlPoints().add(new Vector4(0, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(1, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);
// Add node to root
Node node = scene.getRootNode().createChildNode("triangle", mesh);
// Save as GLB
GltfSaveOptions glbOpts = new GltfSaveOptions();
glbOpts.setContentType(FileContentType.BINARY);
scene.save("triangle.glb", glbOpts);