API Overview — @aspose/3d for TypeScript

Balíček: @aspose/3d (v24.12.0) Jazyk: TypeScript / Node.js 18+ Licence: MIT

@aspose/3d je knihovna licencovaná pod MIT pro čtení, vytváření a export 3D scén v Node.js. Dodává se s kompletními typovými definicemi TypeScript, jednou runtime závislostí (xmldom), a podporuje sedm hlavních 3D formátů souborů. Veškerý I/O je synchronní. Nativní doplňky nejsou vyžadovány.


Properties

npm install @aspose/3d

Properties tsconfig.json nastavení pro správné rozlišení podcesty:

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

Referenční příručka API pro podporu zástupných znaků v Aspose.Slides FOSS pro C++. Tvary zástupných polí definují obsahové oblasti v rozvržení a šablonách snímků.

Properties

Kořenový kontejner pro 3D scénu. Veškerý obsah; uzly, geometrie, materiály a animace; je uložen ve stromu s kořenem v scene.rootNode.Použijte open() / openFromBuffer() k načtení souboru a save() / saveToBuffer() k exportu.

PropertiesPropertiesProperties
rootNodeNodeKořen grafu scény
assetInfoAssetInfoMetadata souboru (tvůrce, jednotky, souřadnicový systém)
animationClipsAnimationClip[]Všechny animační klipy ve scéně
open(path, opts?)(string, LoadOptions?) → voidNačíst soubor z disku
openFromBuffer(buf, opts?)(Buffer, LoadOptions?) → voidNačíst z paměťového bufferu
save(path, opts?)(string, SaveOptions?) → voidUložit na disk (formát odvozený od přípony)
saveToBuffer(ext, opts?)(string, SaveOptions?) → BufferUložit do paměťového bufferu
createAnimationClip(name)(string) → AnimationClipVytvořit a zaregistrovat nový animační klip

Properties

Pojmenovaný uzel stromu v grafu scény. Uzly nesou volitelný Entity (mesh, camera, light) a Transform který umisťuje uzel relativně k jeho rodiči.

PropertiesPropertiesProperties
namestringNázev uzlu
childNodesNode[]Přímé podřízené uzly
entity`Entitynull`
transformTransformLokální posunutí, rotace, měřítko
materialsMaterial[]Materiály přiřazené tomuto uzlu
createChildNode(name)(string) → NodePřidat podřízený uzel
getChildNode(name)`(string) → Nodenull`

Properties

Polygonová síť; primární typ geometrie. Rozšiřuje Geometry.

PropertiesPropertiesProperties
controlPointsVector4[]Pozice vrcholů (w=1 pro pozice)
polygonCountnumberPočet polygonů
createPolygon(indices)(number[]) → voidPřidat polygon (trojúhelník nebo čtyřúhelník)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementVytvořit prvek vrcholu

Properties

Lokální transformace aplikovaná na uzel.

PropertiesPropertiesProperties
translationVector3Místní pozice
eulerAnglesVector3Eulerova rotace ve stupních (pořadí XYZ)
rotationQuaternionRotace jako kvaternion
scalingVector3Místní měřítko

Třídy materiálů

PropertiesPropertiesKlíčové vlastnosti
LambertMaterialDifúzní + ambientní stínovánídiffuseColor, ambientColor, transparency
PhongMaterialPřidává spekulární + emisivní k LambertovispecularColor, shininess, emissiveColor
PbrMaterialFyzikálně založené pro glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Matematické třídy

PropertiesProperties
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Varianta s jednoduchou přesností používaná v datech vrcholů
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionRotace kvaternion; fromEulerAngle, toEulerAngles, slerp
BoundingBoxOsa‑zarovnaný ohraničující box; minimum, maximum, center, size, merge

Třídy animací

PropertiesProperties
AnimationClipPojmenovaný klip; obsahuje AnimationNode seznam; přístupný přes scene.animationClips
AnimationNodeVáže klip k pojmenovanému uzlu scény; obsahuje AnimationChannel seznam
AnimationChannelCílí na jedinou vlastnost (např. posun X); obsahuje KeyframeSequence
KeyframeSequenceUspořádaný seznam KeyFrame objekty s interpolation a extrapolation
KeyFrameJedna časová/hodnotová dvojice

Properties

PropertiesPropertiesProperties
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTSemantika vrcholového elementu
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEJak data mapují na geometrii
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTStrategie indexování dat vrcholových elementů
InterpolationCONSTANT, LINEAR, BEZIERInterpolace klíčových snímků
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEChování mimo rozsah klíčových snímků

Formátové moduly

Třídy možností specifické pro formát jsou exportovány z podcestových modulů. Importujte je samostatně:

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

Modul OBJ (@aspose/3d/formats/obj)

PropertiesKlíčové možnosti
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

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

PropertiesKlíčové možnosti
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance(): instance formátu pro scene.save()

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

PropertiesKlíčové možnosti
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binary)

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

PropertiesKlíčové možnosti
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Podporované formáty

PropertiesPropertiesPropertiesProperties
Properties.objPropertiesProperties
glTF 2.0.gltfPropertiesProperties
Properties.glbPropertiesProperties
STL.stlPropertiesProperties
FBX.fbxNe*Ne*
COLLADA.daePropertiesProperties
3MF.3mfPropertiesProperties

Rychlý referenční příklad

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

Viz také

 Čeština