API Overview — @aspose/3d for TypeScript

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

@aspose/3d est une bibliothèque sous licence MIT pour la lecture, la construction et l’exportation de scènes 3D dans Node.js. Elle est fournie avec des définitions de types TypeScript complètes, une seule dépendance d’exécution (xmldom), et prend en charge sept principaux formats de fichiers 3D. Toutes les entrées/sorties sont synchrones. Aucun module natif n’est requis.


Enumerations

npm install @aspose/3d

Enumerations tsconfig.json paramètres pour une résolution correcte des sous‑chemins :

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

La classe Shape fournit des méthodes internes pour travailler avec les espaces réservés :

Enumerations

Le conteneur racine d’une scène 3D. Tout le contenu ; nœuds, géométrie, matériaux et animations ; est stocké dans un arbre dont la racine est scene.rootNode.Utilisez open() / openFromBuffer() pour charger un fichier et save() / saveToBuffer() à exporter.

EnumerationsEnumerationsEnumerations
rootNodeNodeRacine du graphe de scène
assetInfoAssetInfoMétadonnées du fichier (créateur, unités, système de coordonnées)
animationClipsAnimationClip[]Tous les clips d’animation dans la scène
open(path, opts?)(string, LoadOptions?) → voidCharger un fichier depuis le disque
openFromBuffer(buf, opts?)(Buffer, LoadOptions?) → voidCharger depuis le tampon en mémoire
save(path, opts?)(string, SaveOptions?) → voidEnregistrer sur le disque (format déduit de l’extension)
saveToBuffer(ext, opts?)(string, SaveOptions?) → BufferEnregistrer dans le tampon en mémoire
createAnimationClip(name)(string) → AnimationClipCréer et enregistrer un nouveau clip d’animation

Enumerations

Un nœud d’arbre nommé dans le graphe de scène. Les nœuds portent un optionnel Entity (mesh, camera, light) et un Transform qui positionne le nœud par rapport à son parent.

EnumerationsEnumerationsEnumerations
namestringNom du nœud
childNodesNode[]Nœuds enfants directs
entity`Entitynull`
transformTransformTranslation, rotation, mise à l’échelle locales
materialsMaterial[]Matériaux assignés à ce nœud
createChildNode(name)(string) → NodeAjouter un nœud enfant
getChildNode(name)`(string) → Nodenull`

Enumerations

Maillage polygonal ; le type de géométrie principal. Étend Geometry.

EnumerationsEnumerationsEnumerations
controlPointsVector4[]Positions des sommets (w=1 pour les positions)
polygonCountnumberNombre de polygones
createPolygon(indices)(number[]) → voidAjouter un polygone (triangle ou quad)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementCréer un élément de sommet

Enumerations

Transformation locale appliquée à un nœud.

EnumerationsEnumerationsEnumerations
translationVector3Position locale
eulerAnglesVector3Rotation d’Euler en degrés (ordre XYZ)
rotationQuaternionRotation en quaternion
scalingVector3Échelle locale

Classes de matériaux

EnumerationsEnumerationsPropriétés clés
LambertMaterialDiffuse + ombrage ambiantdiffuseColor, ambientColor, transparency
PhongMaterialAjoute le spéculaire + l’émissif à LambertspecularColor, shininess, emissiveColor
PbrMaterialBasé sur la physique pour glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Classes mathématiques

EnumerationsEnumerations
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Variante simple précision utilisée dans les données de sommet
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionQuaternion de rotation ; fromEulerAngle, toEulerAngles, slerp
BoundingBoxBoîte englobante alignée sur les axes ; minimum, maximum, center, size, merge

Classes d’animation

EnumerationsEnumerations
AnimationClipClip nommé ; contient AnimationNode liste ; accédée via scene.animationClips
AnimationNodeLie un clip à un nœud de scène nommé ; contient AnimationChannel liste
AnimationChannelCible une seule propriété (p. ex. translation X) ; détient un KeyframeSequence
KeyframeSequenceListe ordonnée de KeyFrame objets avec interpolation et extrapolation
KeyFramePaire temps/valeur unique

Enumerations

EnumerationsEnumerationsEnumerations
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTSémantique de l’élément de sommet
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEComment les données se mappent à la géométrie
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTStratégie d’indexation des données d’élément de sommet
InterpolationCONSTANT, LINEAR, BEZIERInterpolation d’image-clé
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEComportement en dehors de la plage d’images-clés

Modules de format

Les classes d’options spécifiques à chaque format sont exportées depuis des modules de sous‑chemin. Importez‑les séparément :

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

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

EnumerationsOptions clés
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

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

EnumerationsOptions clés
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance():instance de format pour scene.save()

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

EnumerationsOptions clés
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binaire)

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

EnumerationsOptions clés
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Formats pris en charge

EnumerationsEnumerationsEnumerationsEnumerations
Enumerations.objEnumerationsEnumerations
glTF 2.0.gltfEnumerationsEnumerations
Enumerations.glbEnumerationsEnumerations
STL.stlEnumerationsEnumerations
FBX.fbxNon*Non*
COLLADA.daeEnumerationsEnumerations
3MF.3mfEnumerationsEnumerations

Exemple de référence rapide

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

Voir aussi

 Français