Scene — Aspose.3D FOSS for Java
Overview
Overview Scene class in 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();Overview
Overview Scene class можна інстанціювати без аргументів, щоб створити порожню сцену, або з необов’язковими параметрами.
| Overview | Overview | Overview |
|---|---|---|
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();Методи класу
| Overview | Тип повернення | Overview |
|---|---|---|
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);Overview
Усі властивості доступні через методи getter/setter.
| Overview | Overview | Overview | Overview | Overview |
|---|---|---|---|---|
rootNode | Node | getRootNode() | – | Кореневий вузол ієрархії сцени |
subScenes | List<Scene> | getSubScenes() | – | Підсцени, вкладені в цю сцену |
assetInfo | AssetInfo | getAssetInfo() | setAssetInfo(AssetInfo) | Метадані ресурсу, такі як автор, дата створення та одиниці вимірювання |
animationClips | List<AnimationClip> | getAnimationClips() | – | Кліпи анімації, визначені в сцені |
currentAnimationClip | AnimationClip | getCurrentAnimationClip() | setCurrentAnimationClip(AnimationClip) | Поточний активний кліп анімації |
library | List<A3DObject> | getLibrary() | – | Об’єкти метаданих, визначені користувачем, прикріплені до сцени |
name | String | getName() | setName(String) | Назва об’єкта сцени |
properties | PropertyCollection | getProperties() | – | Користувацькі властивості, прикріплені до сцени |
Overview
| Overview | Тип повернення | Overview |
|---|---|---|
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 | Створює новий іменований кліп анімації та додає його до сцени |
getAnimationClip(String name) | AnimationClip | Знаходить існуючий кліп анімації за назвою, або null якщо не знайдено |
clear() | void | Очищає весь вміст сцени |
Overview
Створіть сцену, додайте вузол mesh і збережіть у форматі 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);