Пакет: @aspose/3d (v24.12.0) Език: TypeScript / Node.js 18+ Лиценз: MIT
@aspose/3d е библиотека с лицензия MIT за четене, конструиране и експортиране на 3D сцени в Node.js. Тя се доставя с пълни TypeScript типови дефиниции, една единствена runtime зависимост (xmldom), и поддържа седем основни 3D файлови формата. Цялото I/O е синхронно. Не са необходими native addons.
Enumerations
Enumerations tsconfig.json настройки за правилно разрешаване на подпътя:
Placeholder в Master Slide
Enumerations
Главният контейнер за 3D сцена. Цялото съдържание; възли, геометрия, материали и анимации; се съхранява в дърво, чиито корен е scene.rootNode.Използвайте open() / openFromBuffer() за зареждане на файл и save() / saveToBuffer() за експортиране.
| Enumerations | Enumerations | Enumerations |
|---|
rootNode | Node | Корен на графа на сцената |
assetInfo | AssetInfo | Метаданни на файла (създател, единици, координатна система) |
animationClips | AnimationClip[] | Всички анимационни клипове в сцената |
open(path, opts?) | (string, LoadOptions?) → void | Заредете файл от диска |
openFromBuffer(buf, opts?) | (Buffer, LoadOptions?) → void | Зареждане от буфер в паметта |
save(path, opts?) | (string, SaveOptions?) → void | Записване на диск (форматът се извлича от разширението) |
saveToBuffer(ext, opts?) | (string, SaveOptions?) → Buffer | Записване в буфер в паметта |
createAnimationClip(name) | (string) → AnimationClip | Създаване и регистриране на нов анимационен клип |
Enumerations
Именуван възел в дървото на графа на сцената. Възлите носят незадължителен Entity (мрежа, камера, светлина) и Transform който позиционира възела относно неговия родител.
| Enumerations | Enumerations | Enumerations |
|---|
name | string | Име на възела |
childNodes | Node[] | Директни дъщерни възли |
entity | `Entity | null` |
transform | Transform | Локално преместване, завъртане, мащаб |
materials | Material[] | Материали, зададени на този възел |
createChildNode(name) | (string) → Node | Добави дъщерен възел |
getChildNode(name) | `(string) → Node | null` |
Enumerations
Полигонална мрежа; основният тип геометрия. Разширява Geometry.
| Enumerations | Enumerations | Enumerations |
|---|
controlPoints | Vector4[] | Позиции на върховете (w=1 за позиции) |
polygonCount | number | Брой полигони |
createPolygon(indices) | (number[]) → void | Добави полигон (триъгълник или четириъгълник) |
getElement(type) | `(VertexElementType) → VertexElement | null` |
createElement(type) | (VertexElementType) → VertexElement | Създайте елемент на връх |
Enumerations
Локална трансформация, приложена към възел.
| Enumerations | Enumerations | Enumerations |
|---|
translation | Vector3 | Локална позиция |
eulerAngles | Vector3 | Ейлерова ротация в градуси (ред XYZ) |
rotation | Quaternion | Ротация като кватернион |
scaling | Vector3 | Локален мащаб |
Класове за материали
| Enumerations | Enumerations | Ключови свойства |
|---|
LambertMaterial | Диффузно + околно осветление | diffuseColor, ambientColor, transparency |
PhongMaterial | Добавя спекуларно + емисивно към Lambert | specularColor, shininess, emissiveColor |
PbrMaterial | Физически базиран за glTF 2.0 | albedo, metallicFactor, roughnessFactor, emissiveColor |
Класове за математика
| Enumerations | Enumerations |
|---|
Vector3 | 3-component double-precision vector (x, y, z) |
Vector4 | 4-component vector for homogeneous math (x, y, z, w) |
FVector3 | Вариант с единична точност, използван в данните за върхове |
Matrix4 | 4×4 transformation matrix; multiply, invert, decompose |
Quaternion | Кватернион за въртене; fromEulerAngle, toEulerAngles, slerp |
BoundingBox | Осиално подравнена ограничителна кутия; minimum, maximum, center, size, merge |
Класове за анимация
| Enumerations | Enumerations |
|---|
AnimationClip | Именован клип; съдържа AnimationNode списък; достъпен чрез scene.animationClips |
AnimationNode | Свързва клип с именуван възел от сцената; съдържа AnimationChannel списък |
AnimationChannel | Насочва към едно свойство (например транслация X); съдържа KeyframeSequence |
KeyframeSequence | Подреден списък от KeyFrame обекти с interpolation и extrapolation |
KeyFrame | Единствена двойка време/стойност |
Enumerations
| Enumerations | Enumerations | Enumerations |
|---|
VertexElementType | NORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENT | Семантика на елемент на върха |
MappingMode | CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME | Как данните се съпоставят с геометрията |
ReferenceMode | DIRECT, INDEX, INDEX_TO_DIRECT | Стратегия за индексиране на данните за елементите на върха |
Interpolation | CONSTANT, LINEAR, BEZIER | Интерполация на ключови кадри |
Extrapolation | CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE | Поведение извън диапазона на ключовите кадри |
Модули за формати
Класовете за опции, специфични за формати, се експортират от подпът модули. Импортирайте ги отделно:
OBJ модул (@aspose/3d/formats/obj)
| Enumerations | Ключови опции |
|---|
ObjLoadOptions | enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
glTF/GLB модул (@aspose/3d/formats/gltf)
| Enumerations | Ключови опции |
|---|
GltfSaveOptions | binaryMode (true → .glb), flipTexCoordV |
GltfFormat | GltfFormat.getInstance(): форматен екземпляр за scene.save() |
STL модул (@aspose/3d/formats/stl)
| Enumerations | Ключови опции |
|---|
StlLoadOptions | N/A |
StlSaveOptions | binaryMode (false → ASCII, true → binary) |
FBX модул (@aspose/3d/formats/fbx)
| Enumerations | Ключови опции |
|---|
FbxLoadOptions | N/A |
FbxSaveOptions | embedTextures |
Поддържани формати
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|
| Enumerations | .obj | Enumerations | Enumerations |
| glTF 2.0 | .gltf | Enumerations | Enumerations |
| Enumerations | .glb | Enumerations | Enumerations |
| STL | .stl | Enumerations | Enumerations |
| FBX | .fbx | Не* | Не* |
| COLLADA | .dae | Enumerations | Enumerations |
| 3MF | .3mf | Enumerations | Enumerations |
Бърз пример за справка
Вижте също