Scene — Aspose.3D FOSS for Java
Example
Example Scene Η κλάση στο Aspose.3D λειτουργεί ως το ριζικό κοντέινερ για 3D περιεχόμενο, διαχειρίζεται αντικείμενα ανώτερου επιπέδου και επιτρέπει τη διαχείριση σχέσεων γονέα/παιδιού για την ιεραρχία της σκηνής. Παρέχει πρόσβαση σε ριζικούς κόμβους και υπο‑σκηνές, σχηματίζοντας το σημείο εισόδου για τη φόρτωση, την κατασκευή και την αποθήκευση 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 Η κλάση μπορεί να δημιουργηθεί χωρίς ορίσματα για να δημιουργήσει μια κενή σκηνή, ή με προαιρετικές παραμέτρους.
| Example | Example | Example |
|---|---|---|
entity | Entity | Προαιρετική οντότητα για προσάρτηση στον ριζικό κόμβο κατά τη δημιουργία |
parentScene | Scene | Προαιρετική γονική σκηνή (για υπο‑σκηνές); απαιτεί όνομα |
name | String | Όνομα σκηνής (χρησιμοποιείται μόνο με τον δι‑ορισματικό Scene(Scene, String) κατασκευαστή) |
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();Μέθοδοι κλάσης
| Example | Τύπος Επιστροφής | Example |
|---|---|---|
Scene.fromFile(String filePath) | Scene | Φορτώνει μια σκηνή από τη συγκεκριμένη διαδρομή αρχείου, ανιχνεύοντας αυτόματα τη μορφή. |
Scene.fromFile(String filePath, LoadOptions options) | Scene | Φορτώνει μια σκηνή με επιλογές φόρτωσης ειδικές για τη μορφή. |
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
Όλες οι ιδιότητες προσπελάζονται μέσω μεθόδων getter/setter.
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
rootNode | Node | getRootNode() | – | Ριζικός κόμβος της ιεραρχίας της σκηνής |
subScenes | List<Scene> | getSubScenes() | – | Υπο‑σκηνές ενσωματωμένες σε αυτή τη σκηνή |
assetInfo | AssetInfo | getAssetInfo() | setAssetInfo(AssetInfo) | Μεταδεδομένα περιουσιακού στοιχείου όπως ο συγγραφέας, η ημερομηνία δημιουργίας και οι μονάδες |
animationClips | List<AnimationClip> | getAnimationClips() | – | Animation clips που ορίζονται στη σκηνή |
currentAnimationClip | AnimationClip | getCurrentAnimationClip() | setCurrentAnimationClip(AnimationClip) | Το τρέχον ενεργό animation clip |
library | List<A3DObject> | getLibrary() | – | Αντικείμενα μεταδεδομένων ορισμένα από τον χρήστη που είναι προσαρτημένα στη σκηνή |
name | String | getName() | setName(String) | Όνομα του αντικειμένου σκηνής |
properties | PropertyCollection | getProperties() | – | Προσαρμοσμένες ιδιότητες που έχουν προσαρτηθεί στη σκηνή |
Example
| Example | Τύπος Επιστροφής | Example |
|---|---|---|
save(String filePath) | void | Αποθηκεύει τη σκηνή σε αρχείο· η μορφή προκύπτει από την επέκταση |
save(String filePath, FileFormat format) | void | Αποθηκεύει τη σκηνή σε αρχείο στην καθορισμένη FileFormat |
save(String filePath, SaveOptions options) | void | Αποθηκεύει τη σκηνή χρησιμοποιώντας επιλογές αποθήκευσης ειδικές για τη μορφή |
open(String filePath) | void | Ανοίγει ένα αρχείο σε αυτή τη σκηνή· η μορφή προκύπτει από την επέκταση |
open(String filePath, LoadOptions options) | void | Ανοίγει ένα αρχείο με επιλογές φόρτωσης ειδικές για τη μορφή |
getProperty(String name) | Object | Λαμβάνει την τιμή μιας ιδιότητας με βάση το όνομα |
findProperty(String name) | Property | Βρίσκει μια ιδιότητα με βάση το όνομα |
createAnimationClip(String name) | AnimationClip | Δημιουργεί ένα νέο ονομασμένο animation clip και το προσθέτει στη σκηνή |
getAnimationClip(String name) | AnimationClip | Βρίσκει ένα υπάρχον animation clip με βάση το όνομα, ή null αν δεν βρεθεί |
clear() | void | Καθαρίζει όλο το περιεχόμενο από τη σκηνή |
Example
Δημιουργήστε μια σκηνή, προσθέστε έναν κόμβο πλέγματος και αποθηκεύστε σε 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);