API Overview — @aspose/3d for TypeScript

Pakotne: @aspose/3d (v24.12.0) Valoda: TypeScript / Node.js 18+ Licence: MIT

@aspose/3d ir MIT licencēta bibliotēka 3D skenējumu lasīšanai, konstruēšanai un eksportēšanai Node.js vidē. Tā tiek piegādāta ar pilnīgiem TypeScript tipa definīcijām, vienu izpildlaika atkarību (xmldom), un atbalsta septiņas galvenās 3D failu formātus. Visa I/O ir sinhroniska. Nav vajadzīgi dabiskie papildinājumi.


npm install @aspose/3d

tsconfig.json iestatījumi pareizai apakšceļu izšķiršanai:

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

Pamatklases

Saknes konteineris 3D scenai. Visa saturs; mezgli, ģeometrija, materiāli un animācijas; tiek glabāts koks, kura sakne ir scene.rootNode.Izmantojiet open() / openFromBuffer() lai ielādētu failu un save() / saveToBuffer() eksportētu.

rootNodeNodeSakne skenes grafā
assetInfoAssetInfoFaila metadati (radītājs, vienības, koordinātu sistēma)
animationClipsAnimationClip[]Visi animācijas klipi scenā
open(path, opts?)(string, LoadOptions?) → voidIelādēt failu no diska
openFromBuffer(buf, opts?)(Buffer, LoadOptions?) → voidIelādēt no atmiņā esoša bufera
save(path, opts?)(string, SaveOptions?) → voidSaglabāt uz diska (formāts noteikts no paplašinājuma)
saveToBuffer(ext, opts?)(string, SaveOptions?) → BufferSaglabāt atmiņā esošā buferī
createAnimationClip(name)(string) → AnimationClipIzveidot un reģistrēt jaunu animācijas klipu

Nosaukts koka mezgls ainas grafā. Mezgli nes neobligātu Entity (mesh, kamera, gaisma) un Transform kas pozicionē mezglu attiecībā pret tā vecāku.

namestringMezgla nosaukums
childNodesNode[]Tieši bērna mezgli
entity`Entitynull`
transformTransformLokāla pārvietošana, rotācija, mērogs
materialsMaterial[]Materiāli, kas piešķirti šim mezglam
createChildNode(name)(string) → NodePievienot bērna mezglu
getChildNode(name)`(string) → Nodenull`

Poligonu režģis; galvenais ģeometrijas veids. Paplašina Geometry.

controlPointsVector4[]Virsotnes pozīcijas (w=1 pozīcijām)
polygonCountnumberPoligonu skaits
createPolygon(indices)(number[]) → voidPievienot poligonu (trīsstūri vai kvadrāti)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementIzveidot virsotnes elementu

Lokāla transformācija, kas piemērota mezglam.

translationVector3Lokālā pozīcija
eulerAnglesVector3Eilera rotācija grādos (XYZ secība)
rotationQuaternionRotācija kā kvaternions
scalingVector3Lokālais mērogs

Materiālu klases

Galvenās īpašības
LambertMaterialDifūzs + apvidus ēnojumsdiffuseColor, ambientColor, transparency
PhongMaterialPievieno spekulāro + emisīvo LambertamspecularColor, shininess, emissiveColor
PbrMaterialFizikāli balstīts glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Matemātikas klases

Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Vienkāršas precizitātes variants, ko izmanto virsotņu datos
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionRotācijas kvaternions; fromEulerAngle, toEulerAngles, slerp
BoundingBoxAxiālu izlīdzināta robežkaste; minimum, maximum, center, size, merge

Animācijas klases

AnimationClipNosaukts klips; satur AnimationNode saraksts; piekļūst caur scene.animationClips
AnimationNodeSaista klipu ar nosauktu ainas mezglu; satur AnimationChannel saraksts
AnimationChannelMērķē uz vienu īpašību (piemēram, pārvietojums X); satur KeyframeSequence
KeyframeSequenceKārtots saraksts ar KeyFrame objektus ar interpolation un extrapolation
KeyFrameViena laika/vērtības pāra

VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTVirsotnes elementa semantika
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEKā dati tiek kartēti uz ģeometriju
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTIndeksēšanas stratēģija virsotnes elementa datiem
InterpolationCONSTANT, LINEAR, BEZIERAtslēgas kadru interpolācija
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEUzvedība ārpus atslēgkadra diapazona

Formāta moduļi

Formātam specifiskās opciju klases tiek eksportētas no apakšceļu moduļiem. Importējiet tās atsevišķi:

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 modulis (@aspose/3d/formats/obj)

Atslēgas opcijas
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

glTF/GLB Modulis (@aspose/3d/formats/gltf)

Galvenās iespējas
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance(): formāta instance priekš scene.save()

STL modulis (@aspose/3d/formats/stl)

Galvenās opcijas
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binārs)

FBX modulis (@aspose/3d/formats/fbx)

Galvenās opcijas
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Atbalstītie formāti

.obj
glTF 2.0.gltf
.glb
STL.stl
FBX.fbxNē*Nē*
COLLADA.dae
3MF.3mf

Ātrais atsauces piemērs

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

Skatīt arī

 Latviešu