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 подпакет содержит внутренние импортёры/экспортеры и обычно не импортируется напрямую.

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() в качестве основных точек входа ввода/вывода.
NodeИменованный узел в иерархии сцены. Содержит список дочерних узлов и список присоединённых Entity объектов, таких как меши, камеры и источники света. Содержит локальный Transform.
EntityАбстрактный базовый класс для всех объектов, которые могут быть присоединены к Node. Предоставляет имя и идентичность, но не имеет собственной геометрии.
SceneObjectБазовый класс, общий для Node и Entity. Предоставляет интерфейс коллекции свойств, используемый для пользовательских метаданных.
A3DObjectКорневой базовый класс для всех управляемых объектов Aspose.3D. Открывает свойство name и Properties коллекция.
INamedObjectИнтерфейс, который гарантирует 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Материал Physically Based Rendering. Хранит альбедо, коэффициент металличности, коэффициент шероховатости, эмиссионный цвет, прозрачность и связанные текстуры. Используется в 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Внутренняя абстракция ввода/вывода, используемая импортёрами и экспортёрами форматов. Обычно не используется напрямую кодом приложения.
LoadOptionsБазовый класс для всех объектов параметров загрузки, специфичных для формата. Является базой для ObjLoadOptions, StlLoadOptions, GltfLoadOptions, FbxLoadOptions.
SaveOptionsБазовый класс для всех объектов параметров сохранения, специфичных для формата. Является базой для ObjSaveOptions, StlSaveOptions, GltfSaveOptions.

Формат OBJ

ExampleExample
ObjImporterВнутренний класс импортёра, который разбирает файлы Wavefront OBJ и MTL. Вызывается автоматически. 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 недоступен в FOSS-издании Java.

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Опции программного растеризования при рендеринге сцены в буфер изображения. Сохраняет цвет фона, размеры изображения и ссылку на камеру. Эта функция доступна в поддерживаемых конфигурациях.

См. также

 Русский