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 можна інстанціювати без аргументів, щоб створити порожню сцену, або з необов’язковими параметрами.

OverviewOverviewOverview
entityEntityНеобов’язковий об’єкт для приєднання до кореневого вузла під час створення
parentSceneSceneНеобов’язкова батьківська сцена (для підсцен); вимагає назви
nameStringНазва сцени (використовується лише з двома аргументами 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.

OverviewOverviewOverviewOverviewOverview
rootNodeNodegetRootNode()Кореневий вузол ієрархії сцени
subScenesList<Scene>getSubScenes()Підсцени, вкладені в цю сцену
assetInfoAssetInfogetAssetInfo()setAssetInfo(AssetInfo)Метадані ресурсу, такі як автор, дата створення та одиниці вимірювання
animationClipsList<AnimationClip>getAnimationClips()Кліпи анімації, визначені в сцені
currentAnimationClipAnimationClipgetCurrentAnimationClip()setCurrentAnimationClip(AnimationClip)Поточний активний кліп анімації
libraryList<A3DObject>getLibrary()Об’єкти метаданих, визначені користувачем, прикріплені до сцени
nameStringgetName()setName(String)Назва об’єкта сцени
propertiesPropertyCollectiongetProperties()Користувацькі властивості, прикріплені до сцени

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);

Див. також

 Українська