Aspose.3D FOSS for Java

API довідка для aspose-3d-foss 26.1.0 (Java 21+, ліцензія MIT).

Усі класи розташовані в com.aspose.threed кореневому пакеті. Кореневий імпорт:

import com.aspose.threed.*;

Структура пакету: Майже всі публічні класи знаходяться в com.aspose.threed. Єдиний підпакет, який зазвичай використовується, це com.aspose.threed.shading (для PbrMaterial). Це com.aspose.threed.formats sub-package містить внутрішні імпортери/експортери і зазвичай не імпортується безпосередньо.

Java правило іменування: Усі властивості використовують методи getter/setter. Наприклад, використовуйте node.getTransform() замість node.transform, і transform.setTranslation(...) замість transform.translation = .... Зауважте, що Vector3, Vector4, Quaternion, Matrix4, і FVector типи використовують публічні поля (v.x, v.y, v.z) замість геттерів для доступу до компонентів.


Основний граф сцени

ExampleExample
SceneКонтейнер верхнього рівня для всіх 3D-даних сцени. Містить кореневий вузол, метадані активів та анімаційні кліпи. Надає fromFile(), open(), і save() як основні точки входу I/O.
NodeІменований вузол у ієрархії сцени. Містить список дочірніх вузлів і список приєднаних Entity об’єктів, таких як сітки, камери та освітлення. Містить локальний Transform.
EntityАбстрактний базовий клас для всіх об’єктів, які можуть бути приєднані до Node. Надає ім’я та ідентифікатор, але не має власної геометрії.
SceneObjectБазовий клас, спільний для Node та Entity. Надає інтерфейс колекції властивостей, що використовується для метаданих, визначених користувачем.
A3DObjectКореневий базовий клас для всіх керованих об’єктів Aspose.3D. Надає властивість name та the Properties колекція.
INamedObjectІнтерфейс, який гарантує a getName() метод. Реалізовано в Node, Entity, і кілька типів дескрипторів, специфічних для формату.

Геометрія та сітка

ExampleExample
MeshОб’єкт полігональної сітки. Зберігає контрольні точки (позиції вершин як Vector4), списки граней полігонів (списки індексів контрольних точок) та шари елементів вершин (нормалі, UV, кольори вершин).
GeometryАбстрактна база для типів геометрії, схожих на сітки. Визначає масив контрольних точок та колекцію VertexElement шарів. Mesh наслідує від Geometry.
VertexElementАбстрактна база для шару даних, прикріпленого до геометрії (нормалі, UV, кольори тощо). Несе getMappingMode(), getReferenceMode(), і список даних.
VertexElementNormalЗберігає один вектор нормалі на вершину або на кут полігону, залежно від режиму мапінгу. Значення даних є Vector4 екземпляри з w не використовується.
VertexElementUVЗберігає пари текстурних координат (Vector2) на вершину або на кут полігону. Сітка може містити кілька UV-шарів для різних текстурних каналів.
VertexElementVertexColorЗберігає дані кольору RGBA для кожної вершини або кута у вигляді Vector4 (r, g, b, a у діапазоні 0–1).
VertexElementTypeПерерахування, що визначає семантичну роль шару елементу вершини: NORMAL, UV, VERTEX_COLOR, та інші. Передайте значення до Mesh.getElement().
MappingModeПерерахування, що визначає, до якої примітиви прив’язується значення елементу вершини: CONTROL_POINT, POLYGON_VERTEX, або POLYGON.
ReferenceModeПерерахування, що визначає, як індексуються значення: DIRECT (одне значення на примітив відображення) або INDEX_TO_DIRECT (масив значень плюс окремий масив індексів).

Трансформація та простір

ExampleExample
TransformЛокальне перетворення, прикріплене до Node. Забезпечує переміщення, обертання (як Quaternion), та компоненти масштабування, а також зручні методи для кутів Ейлера.
GlobalTransformТільки для читання представлення просторового перетворення вузла після композиції всіх перетворень предків. Доступно через node.getGlobalTransform().
AssetInfoБлок метаданих, прикріплений до Scene. Зберігає назву програми-автора, назву одиниці, коефіцієнт масштабування одиниці, визначення осей системи координат та часові мітки створення/модифікації.

Матеріали та шейдинг

ExampleExample
MaterialАбстрактний базовий клас для всіх типів матеріалів. Забезпечує назву та колекцію властивостей для числових та кольорових параметрів.
PbrMaterialМатеріал фізично‑основного рендерингу. Зберігає альбедо, металевий фактор, фактор шорсткості, емісійний колір, прозорість та пов’язані текстури. Використовується у glTF 2.0 та інших форматах, що підтримують PBR. Імпорт: com.aspose.threed.shading.PbrMaterial.

Example

ExampleExample
CameraСутність камери. Наслідує від Entity. У випуску Java FOSS не розкриваються специфічні для формату властивості, окрім успадкованої назви та колекції властивостей. Прикріплено до Node для визначення трансформувань точки зору.

Примітка: Example Light клас недоступний у випуску Java Aspose.3D FOSS. Дані освітлення сцени з імпортованих файлів зберігаються як загальні Entity об’єкти.


Математичні утиліти

ExampleExample
Vector2Вектор з подвійною точністю, 2‑компонентний (x, y). Використовується для UV-координат текстури.
Vector3Вектор з подвійною точністю, 3-компонентний (x, y, z). Використовується для позицій, напрямків та масштабу.
Vector4Вектор з подвійною точністю, 4-компонентний (x, y, z, w). Використовується для контрольних точок (однорідних позицій) та даних нормалей.
FVector3Вектор з одинарною точністю, 3-компонентний тип float. З’являється у масивах даних елементів вершин для нормалей та дотичних.
FVector4Вектор з одинарною точністю, 4-компонентний тип float. Тип зберігання VertexElementFVector даних.
QuaternionОдиничний кватерніон для представлення обертів (w, x, y, z). Використовується Transform.getRotation().
Matrix44x4 double-precision transformation matrix. Used for world/local transform computations and can be constructed from TRS decompositions.
BoundingBoxПрямокутна обмежувальна коробка, орієнтована за осями, визначена getMinimum() і getMaximum() Vector3 кутки. Використовується для просторових запитів та допоміжних засобів відсікання фрустума.

Example

ExampleExample
AnimationClipНазваний контейнер для діапазону анімації. A Scene може містити кілька кліпів (наприклад, “Walk”, “Run”). Заглушка оголошення — дані ключових кадрів та відтворення ще не реалізовані.

Ввід/вивід форматів

ExampleExample
Scene.fromFile(path)Статичний метод. Відкриває файл за адресою path, визначає формат за розширенням і повертає заповнений Scene. Викидає виключення, якщо файл не знайдено або формат не підтримується.
Scene.open(path, options)Метод екземпляра. Відкриває файл у вже існуючому Scene екземплярі, за потреби використовуючи специфічний для формату LoadOptions підклас.
Scene.save(path, options)Метод екземпляра. Серіалізує сцену у path використовуючи формат, визначений за розширенням, за потреби використовуючи специфічний для формату SaveOptions підклас.
FileFormatРеєстр підтримуваних форматів файлів. Містить записи, такі як FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(), FileFormat.FBX7400ASCII().
IOServiceВнутрішня абстракція I/O, що використовується імпортерами та експортерами форматів. Зазвичай не використовується безпосередньо кодом застосунку.
LoadOptionsБазовий клас для всіх об’єктів параметрів завантаження, специфічних для формату. Підкласом є ObjLoadOptions, StlLoadOptions, GltfLoadOptions, FbxLoadOptions.
SaveOptionsБазовий клас для всіх об’єктів параметрів збереження, специфічних для формату. Підкласом є ObjSaveOptions, StlSaveOptions, GltfSaveOptions.

Формат OBJ

ExampleExample
ObjImporterВнутрішній клас-імпортер, який аналізує файли Wavefront OBJ та MTL. Викликається автоматично by Scene.fromFile() для .obj розширень.
ObjLoadOptionsПараметри завантаження для файлів Wavefront OBJ. Ключові властивості: setFlipCoordinateSystem(), setScale(), setEnableMaterials(), setNormalizeNormal().
ObjSaveOptionsПараметри збереження для виводу Wavefront OBJ. Керує нормалями, UV‑координатами, посиланнями на матеріали та режимом хмари точок.
ObjFormatОпис формату для Wavefront OBJ. Доступний як FileFormat.WAVEFRONT_OBJ().

Формат STL

ExampleExample
StlImporterВнутрішній імпортер, який читає як бінарні, так і ASCII STL‑файли. Вибирається автоматично за розширенням.
StlExporterВнутрішній експортер, який записує STL.
StlLoadOptionsПараметри завантаження для STL‑файлів. Підтримує setFlipCoordinateSystem(), setRecalculateNormal(), і setContentType().
StlSaveOptionsПараметри збереження для виводу STL. Керування setFlipCoordinateSystem(), setAxisSystem(), і setContentType().
StlFormatОпис формату для STL.

Формат glTF

ExampleExample
GltfLoadOptionsПараметри завантаження для файлів glTF 2.0 та GLB. Ключові властивості: setFlipCoordinateSystem(), setPrettyPrint().
GltfSaveOptionsПараметри збереження для виводу glTF 2.0 та GLB. Використовуйте setContentType(FileContentType.BINARY) для створення самодостатнього .glb пакету.
GltfFormatОпис формату для glTF 2.0 / GLB. Доступний як FileFormat.GLTF2().

Формат FBX

FBX підтримується для лише імпорт. Експорт у FBX недоступний у Java FOSS-версії.

ExampleExample
FbxLoadOptionsПараметри завантаження для файлів FBX. Ключова властивість: setFlipCoordinateSystem().
FbxFormatОпис формату для FBX. Доступний як FileFormat.FBX7400ASCII().

Example

ExampleExample
AxisВизначає координатну вісь: X_AXIS, Y_AXIS, Z_AXIS. Використовується в параметрах переналаштування системи координат.
CoordinateSystemВказує конвенцію правосторонності: RIGHT_HANDED або LEFT_HANDED.
TextureMappingВизначає, як текстура відображається на геометрію: DIFFUSE, SPECULAR, EMISSIVE, NORMAL, AMBIENT, тощо.
BooleanOperationТип булевої операції CSG: UNION, DIFFERENCE, INTERSECTION.

Система властивостей

ExampleExample
PropertyОдна іменована типізована властивість у A3DObject. Зберігає назву властивості, дескриптор типу та поточне значення.
PropertyCollectionІтерабельна колекція Property об’єкти, приєднані до A3DObject. Підтримує пошук за назвою та ітерацію по всіх визначених властивостях.
CustomObjectЛегковаговий A3DObject підклас, який містить лише назву та довільний PropertyCollection. Використовується для зберігання користувацьких метаданих у об’єктах сцени.

Зображення та рендеринг

ExampleExample
ImageRenderOptionsПараметри програмної растеризації під час рендерингу сцени у буфер зображення. Зберігає колір фону, розміри зображення та посилання на камеру. Ця функція доступна у підтримуваних конфігураціях.

Див. також

 Українська