API Overview — @aspose/3d for TypeScript

Пакет: @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

npm install @aspose/3d

Enumerations tsconfig.json настройки за правилно разрешаване на подпътя:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "strict": true
  }
}

Placeholder в Master Slide

Enumerations

Главният контейнер за 3D сцена. Цялото съдържание; възли, геометрия, материали и анимации; се съхранява в дърво, чиито корен е scene.rootNode.Използвайте open() / openFromBuffer() за зареждане на файл и save() / saveToBuffer() за експортиране.

EnumerationsEnumerationsEnumerations
rootNodeNodeКорен на графа на сцената
assetInfoAssetInfoМетаданни на файла (създател, единици, координатна система)
animationClipsAnimationClip[]Всички анимационни клипове в сцената
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 който позиционира възела относно неговия родител.

EnumerationsEnumerationsEnumerations
namestringИме на възела
childNodesNode[]Директни дъщерни възли
entity`Entitynull`
transformTransformЛокално преместване, завъртане, мащаб
materialsMaterial[]Материали, зададени на този възел
createChildNode(name)(string) → NodeДобави дъщерен възел
getChildNode(name)`(string) → Nodenull`

Enumerations

Полигонална мрежа; основният тип геометрия. Разширява Geometry.

EnumerationsEnumerationsEnumerations
controlPointsVector4[]Позиции на върховете (w=1 за позиции)
polygonCountnumberБрой полигони
createPolygon(indices)(number[]) → voidДобави полигон (триъгълник или четириъгълник)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementСъздайте елемент на връх

Enumerations

Локална трансформация, приложена към възел.

EnumerationsEnumerationsEnumerations
translationVector3Локална позиция
eulerAnglesVector3Ейлерова ротация в градуси (ред XYZ)
rotationQuaternionРотация като кватернион
scalingVector3Локален мащаб

Класове за материали

EnumerationsEnumerationsКлючови свойства
LambertMaterialДиффузно + околно осветлениеdiffuseColor, ambientColor, transparency
PhongMaterialДобавя спекуларно + емисивно към LambertspecularColor, shininess, emissiveColor
PbrMaterialФизически базиран за glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Класове за математика

EnumerationsEnumerations
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Вариант с единична точност, използван в данните за върхове
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionКватернион за въртене; fromEulerAngle, toEulerAngles, slerp
BoundingBoxОсиално подравнена ограничителна кутия; minimum, maximum, center, size, merge

Класове за анимация

EnumerationsEnumerations
AnimationClipИменован клип; съдържа AnimationNode списък; достъпен чрез scene.animationClips
AnimationNodeСвързва клип с именуван възел от сцената; съдържа AnimationChannel списък
AnimationChannelНасочва към едно свойство (например транслация X); съдържа KeyframeSequence
KeyframeSequenceПодреден списък от KeyFrame обекти с interpolation и extrapolation
KeyFrameЕдинствена двойка време/стойност

Enumerations

EnumerationsEnumerationsEnumerations
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTСемантика на елемент на върха
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEКак данните се съпоставят с геометрията
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTСтратегия за индексиране на данните за елементите на върха
InterpolationCONSTANT, LINEAR, BEZIERИнтерполация на ключови кадри
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEПоведение извън диапазона на ключовите кадри

Модули за формати

Класовете за опции, специфични за формати, се експортират от подпът модули. Импортирайте ги отделно:

import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';
import { FbxLoadOptions, FbxSaveOptions } from '@aspose/3d/formats/fbx';
import { ColladaLoadOptions } from '@aspose/3d/formats/collada';
import { ThreeMfSaveOptions } from '@aspose/3d/formats/3mf';

OBJ модул (@aspose/3d/formats/obj)

EnumerationsКлючови опции
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

glTF/GLB модул (@aspose/3d/formats/gltf)

EnumerationsКлючови опции
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance(): форматен екземпляр за scene.save()

STL модул (@aspose/3d/formats/stl)

EnumerationsКлючови опции
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binary)

FBX модул (@aspose/3d/formats/fbx)

EnumerationsКлючови опции
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Поддържани формати

EnumerationsEnumerationsEnumerationsEnumerations
Enumerations.objEnumerationsEnumerations
glTF 2.0.gltfEnumerationsEnumerations
Enumerations.glbEnumerationsEnumerations
STL.stlEnumerationsEnumerations
FBX.fbxНе*Не*
COLLADA.daeEnumerationsEnumerations
3MF.3mfEnumerationsEnumerations

Бърз пример за справка

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

// Load OBJ with materials
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
scene.open('input.obj', loadOpts);

// Inspect root nodes
for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}, entity: ${node.entity?.constructor.name}`);
}

// Export as GLB (binary glTF)
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;
scene.save('output.glb', saveOpts);

Вижте също

 Български