Merkmale und Funktionalität
Aspose.3D FOSS für TypeScript ist eine mit MIT lizenzierte Node.js-Bibliothek zum Laden, Konstruktion und Export von 3D-Szenen. Es wird mit kompletten Typdefinitionen von Type Script geliefert, einer einzigen Laufzeitabhängigkeit (xmldomDiese Seite ist die primäre Referenz für alle Feature-Bereiche und enthält laufbare TypeScript-Code-Beispiele für jeden einzelnen.
Installation und Einrichtung
Installieren Sie das Paket von npm mit einem einzigen Befehl:
asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.Das Paket richtet sich an CommonJS und erfordert Node.js 18 oder höher. Nach der Installation überprüfen Sie Ihre tsconfig.json enthält die folgenden Kompilatoroptionen für volle Verträglichkeit:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"moduleResolution": "node",
"esModuleInterop": true,
"strict": true
}
}Import der Haupt- Scene Die Format-spezifischen Optionsklassen werden aus ihren jeweiligen Unterwegen importiert:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';Merkmale und Funktionalität
Formatunterstützung
Aspose.3D FOSS für TypeScript liest und schreibt sechs wichtige 3D-Dateiformate. Die Formaterkennung erfolgt automatisch aus binären Zauberzahlen beim Laden, so dass Sie das Quellformat nicht explizit angeben müssen.
| Format der Datenbank | Lesen Sie . | Schreiben . | Anmerkungen |
|---|---|---|---|
| OBJ | - Ja , das ist gut . | - Ja , das ist gut . | Wavefront OBJ; Lies-/Schreibverbindungen .mtl Materialien; Verwendung ObjLoadOptions.enableMaterials für die Einfuhr |
| GFT-Systeme | - Ja , das ist gut . | - Ja , das ist gut . | Die in den Artikeln 1 und 2 genannten Daten werden als “Daten” eingestuft. |
| STL | - Ja , das ist gut . | - Ja , das ist gut . | Binär und ASCII; volle Rückfahrt überprüft |
| 3MF | - Ja , das ist gut . | - Ja , das ist gut . | 3D Manufacturing Format with color and material metadata |
| FBX | Nicht verfügbar* | Nicht verfügbar* | Importeur/Exporter existiert, aber Format-Autoerkennung nicht verdrahtet |
| COLLADA | - Ja , das ist gut . | - Ja , das ist gut . | Einheitsskalierung, Geometrie, Materialien und Animationsclip |
Beförderung des OBJ mit Materialien:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
options.flipCoordinateSystem = false;
options.scale = 1.0;
options.normalizeNormal = true;
scene.open('model.obj', options);Einsparungen auf GLB (binärer glTF):
import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
// ... build or load scene content
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save('output.glb', GltfFormat.getInstance(), opts);Schauplatz
Alle 3D-Inhalte sind als Baum von Node Objekte, die auf der scene.rootNode.Jeder Knoten kann eine Entity (a) Mesh, Camera, Light, oder andere SceneObject) und a Transform Das positioniert es relativ zu seinem Elternteil.
Schlüssel-Szenengrafikklassen:
Scene: der oberste Behälter;rootNodeundanimationClipsNode: ein benannter Baumknoten mitchildNodes,entity,transform, undmaterialsEntity: Basisklasse für Anschlussobjekte (Mesh,Camera,Light)SceneObject: Basisklasse geteilt durchNodeundEntityA3DObject: Wurzel-Basisklasse mitnameund SachtascheTransform:Die Schwerpunkte sind: Lokalübersetzung, Rotation (Euler und Quaternion) sowie Skala.
Durch die Szene graphisch:
import { Scene, Node, Mesh } from '@aspose/3d';
const scene = new Scene();
scene.open('model.obj');
function visit(node: Node, depth: number = 0): void {
const indent = ' '.repeat(depth);
console.log(`${indent}Node: ${node.name}`);
if (node.entity) {
console.log(`${indent} Entity: ${node.entity.constructor.name}`);
}
for (const child of node.childNodes) {
visit(child, depth + 1);
}
}
visit(scene.rootNode);Schaffung einer Szenenhierarchie programmatisch:
import { Scene, Node } from '@aspose/3d';
const scene = new Scene();
const parent = scene.rootNode.createChildNode('chassis');
const wheel = parent.createChildNode('wheel_fl');
wheel.transform.translation.set(0.9, -0.3, 1.4);Geometrie und Netzwerk
Mesh ist der primäre Geometrie-Typ. Es erstreckt sich Geometry und zeigt Kontrollpunkte (Wertschnitte), Polygonindizes und Wertelemente für Normalwerte, UV-Strahlen und Wertschnittfarben.
Schlüsselgeometrie-Klassen:
Mesh: Mehrseilmaschine mitcontrolPointsund .polygonCountGeometry: Basisklasse mit Vertex-ElementverwaltungVertexElementNormal: Normalen pro Höhenpunkt oder normalen per Polygon-HöhenbereichVertexElementUV: Texturkoordinaten (einer oder mehrere UV-Kanäle)VertexElementVertexColor: Farbdaten pro SpitzeMappingMode: steuert, wie die Elemente zu Polygonen (CONTROL_POINT,POLYGON_VERTEX,POLYGON,EDGE,ALL_SAME)ReferenceMode: die Indexstrategie kontrolliert (DIRECT,INDEX,INDEX_TO_DIRECT)VertexElementType: Identifiziert die Semantik eines Wertelementes.TextureMapping: Aufzählung der Texturkanäle
Lesen von Maschendaten aus einer geladenen Szene:
import { Scene, Mesh, VertexElementType } from '@aspose/3d';
const scene = new Scene();
scene.open('model.stl');
for (const node of scene.rootNode.childNodes) {
if (node.entity instanceof Mesh) {
const mesh = node.entity as Mesh;
console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices, ${mesh.polygonCount} polygons`);
const normals = mesh.getElement(VertexElementType.NORMAL);
if (normals) {
console.log(` Normal mapping: ${normals.mappingMode}`);
}
}
}Materialsystem
Aspose.3D FOSS für TypeScript unterstützt drei Materialtypen, die das gesamte Spektrum von Phong-Verlag bis hin zu physikalisch basierender Darstellung abdecken:
LambertMaterial: diffuse Farbe und Umgebungsfarbe; Karten zu einfachen OBJ/DAE-MaterialienPhongMaterial: fügt Spiegelfarbe, Glanz und Emissionskraft hinzu; der Standard-OBJ-MaterialtypPbrMaterial: physikalisch basierte Rauheit/Metallmodell; für den Import und die Ausfuhr von glTF 2.0 verwendet.
Lesematerialien aus einer geladenen OBJ-Szene:
import { Scene, PhongMaterial, LambertMaterial } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);
for (const node of scene.rootNode.childNodes) {
for (const mat of node.materials) {
if (mat instanceof PhongMaterial) {
const phong = mat as PhongMaterial;
console.log(` Phong: diffuse=${JSON.stringify(phong.diffuseColor)}, shininess=${phong.shininess}`);
} else if (mat instanceof LambertMaterial) {
console.log(` Lambert: diffuse=${JSON.stringify((mat as LambertMaterial).diffuseColor)}`);
}
}
}Anwendung eines PBR-Materials beim Bau einer glTF-Szene:
import { Scene, Node, PbrMaterial } from '@aspose/3d';
import { Vector3 } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
const node = scene.rootNode.createChildNode('sphere');
const mat = new PbrMaterial();
mat.albedo = new Vector3(0.8, 0.2, 0.2); // red-tinted albedo; albedo starts null, must assign
mat.metallicFactor = 0.0;
mat.roughnessFactor = 0.5;
node.material = mat;
const opts = new GltfSaveOptions();
opts.binaryMode = false;
scene.save('output.gltf', GltfFormat.getInstance(), opts);Mathematik-Dienste
Die Bibliothek liefert eine komplette Reihe von 3D-Mathematiktypen, alle vollständig eingegeben:
Vector3: 3-Komponenten-Vektor; Stützungenminus(),times(),dot(),cross(),normalize(),length,angleBetween()Vector4: Vier-Komponentenvektor für homogene KoordinatenMatrix4: 4×4 Transformationsmatrix mitconcatenate(),transpose,decompose,setTRSQuaternion: Rotationsquaternion mitfromEulerAngle()(statisch, in der Einheit),eulerAngles()(Instanzverfahren),slerp(),normalize()BoundingBox: Achsenbereinigte Grenzschachtel mit:minimum,maximum,center,size,mergeFVector3: Einzelpräzisionsvariante von:Vector3in Vertex-Elementdaten verwendet werden
Berechnung einer Grenzfläche aus Maschenwinkel:
import { Scene, Mesh, Vector3, BoundingBox } from '@aspose/3d';
const scene = new Scene();
scene.open('model.obj');
let box = new BoundingBox();
for (const node of scene.rootNode.childNodes) {
if (node.entity instanceof Mesh) {
for (const pt of (node.entity as Mesh).controlPoints) {
box.merge(new Vector3(pt.x, pt.y, pt.z));
}
}
}
console.log('Center:', box.center);
console.log('Extents:', box.size);Erstellung einer Transformation aus Euler-Winkeln:
import { Quaternion, Vector3, Matrix4 } from '@aspose/3d';
const rot = Quaternion.fromEulerAngle(0, Math.PI / 4, 0); // 45° around Y
const mat = new Matrix4();
mat.setTRS(new Vector3(0, 0, 0), rot, new Vector3(1, 1, 1));Animationssystem
Die Animations-API modelliert Clips, Knoten, Kanäle und Keyframe Sequenzen:
AnimationClip: benannte Sammlung von Animationsknoten; überscene.animationClips;, zeigt aufanimations: AnimationNode[]AnimationNode: benannte Gruppe vonBindPoints; erstellt überclip.createAnimationNode(name), über die Internetverbindung zugegriffen werden kann.clip.animationsBindPoint: verbindet eineAnimationNodeauf eine bestimmte Eigenschaft eines Szenenobjekts; zeigt diepropertyund .channelsCountAnimationChannel: erstreckt sich auf:KeyframeSequence;Die Kommission hat eine gesonderte Liste derkeyframeSequence; über die Internetverbindung zugegriffen werden.bindPoint.getChannel(name)KeyFrame: ein einzelnes Zeit-/Wertpaar; trägt pro Schlüsselrahmen.interpolation: InterpolationKeyframeSequence: geordnete Liste derKeyFrameObjekte über diekeyFrames;hat;preBehaviorund .postBehavior(Extrapolation)Interpolation:Ich bin nicht hier.:LINEAR,CONSTANT,BEZIER,B_SPLINE,CARDINAL_SPLINE,TCB_SPLINEExtrapolation:Klasse mit:type: ExtrapolationTypeund .repeatCount: numberExtrapolationType:Ich bin nicht hier.:CONSTANT,GRADIENT,CYCLE,CYCLE_RELATIVE,OSCILLATE
Animationsdaten aus einer geladenen Szene lesen:
import { Scene, AnimationNode, BindPoint } from '@aspose/3d';
const scene = new Scene();
scene.open('animated.dae'); // COLLADA animation import is supported
for (const clip of scene.animationClips) {
console.log(`Clip: "${clip.name}"`);
for (const animNode of clip.animations) { // clip.animations, not clip.nodes
console.log(` AnimationNode: ${animNode.name}`);
for (const bp of animNode.bindPoints) { // animNode.bindPoints, not animNode.channels
console.log(` BindPoint: property="${bp.property.name}", channels=${bp.channelsCount}`);
}
}
}Unterstützung für Streaming und Puffer
Verwendung scene.openFromBuffer() Um eine 3D-Szene direkt aus einem In-Memory zu laden. Buffer.Dies ist das empfohlene Muster für serverlose Funktionen, Streaming-Pipelines und Verarbeitungsaktiva, die über HTTP abgerufen werden, ohne auf Festplatte zu schreiben.
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import * as fs from 'fs';
// Load file into memory, then parse from buffer
const buffer: Buffer = fs.readFileSync('model.obj');
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.openFromBuffer(buffer, options);
for (const node of scene.rootNode.childNodes) {
if (node.entity) {
console.log(node.name, node.entity.constructor.name);
}
}Die automatische Erkennung von Formate aus binären Zauberzahlen findet beim Laden vom Puffer statt, so dass GLB-, STL-Binär- und 3MF-Dateien ohne Angabe eines Formatparameters erkannt werden.
Verwendungsbeispiele
Beispiel 1: OBJ-Ladung und Export nach GLB
Dieses Beispiel lädt eine Wavefront OBJ-Datei mit Materialien und exportiert die Szene dann als binäre glTF (GLB) -Date, die für den Einsatz im Web und in Spielmotoren geeignet ist.
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
function convertObjToGlb(inputPath: string, outputPath: string): void {
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
loadOpts.flipCoordinateSystem = false;
loadOpts.normalizeNormal = true;
scene.open(inputPath, loadOpts);
// Report what was loaded
for (const node of scene.rootNode.childNodes) {
if (node.entity) {
console.log(`Loaded: ${node.name} (${node.entity.constructor.name})`);
}
}
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // write .glb instead of .gltf + .bin
scene.save(outputPath, GltfFormat.getInstance(), saveOpts);
console.log(`Exported GLB to: ${outputPath}`);
}
convertObjToGlb('input.obj', 'output.glb');Beispiel 2: Rundfahrt-STL mit normaler Validierung
Dieses Beispiel lädt eine binäre STL-Datei, druckt per Vertex normale Informationen und exportiert die Szene dann als ASCII ST L wieder aus und überprüft den Rundgang.
import { Scene, Mesh, VertexElementNormal, VertexElementType } from '@aspose/3d';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';
const scene = new Scene();
const loadOpts = new StlLoadOptions();
scene.open('model.stl', loadOpts);
let totalPolygons = 0;
for (const node of scene.rootNode.childNodes) {
if (node.entity instanceof Mesh) {
const mesh = node.entity as Mesh;
totalPolygons += mesh.polygonCount;
const normElem = mesh.getElement(VertexElementType.NORMAL) as VertexElementNormal | null;
if (normElem) {
console.log(` Normals: ${normElem.data.length} entries, mapping=${normElem.mappingMode}`);
}
}
}
console.log(`Total polygons: ${totalPolygons}`);
// Re-export as ASCII STL
const saveOpts = new StlSaveOptions();
saveOpts.binaryMode = false; // ASCII output
scene.save('output_ascii.stl', saveOpts);Beispiel 3: Programmatisch eine Szene erstellen und als glTF speichern
Dieses Beispiel konstruiert eine Szene mit einem PBR-Material von Grund auf und speichert sie als JSON glTF Datei.
import { Scene, Mesh, PbrMaterial, Vector4, Vector3 } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
const node = scene.rootNode.createChildNode('floor');
// Build a simple quad mesh (two triangles)
// controlPoints are Vector4 (x, y, z, w) where w=1 for positions
const mesh = new Mesh();
mesh.controlPoints.push(
new Vector4(-1, 0, -1, 1),
new Vector4( 1, 0, -1, 1),
new Vector4( 1, 0, 1, 1),
new Vector4(-1, 0, 1, 1),
);
mesh.createPolygon([0, 1, 2]);
mesh.createPolygon([0, 2, 3]);
node.entity = mesh;
// Apply a PBR material
const mat = new PbrMaterial();
mat.albedo = new Vector3(0.6, 0.6, 0.6); // albedo starts null, must assign
mat.metallicFactor = 0.0;
mat.roughnessFactor = 0.8;
node.material = mat;
// Save as JSON glTF
const opts = new GltfSaveOptions();
opts.binaryMode = false;
scene.save('floor.gltf', GltfFormat.getInstance(), opts);
console.log('Scene written to floor.gltf');Tipps und beste Praktiken
- Verwendung
ObjLoadOptions.enableMaterials = trueWenn Sie Materialdaten aus .mtl-Dateien benötigen, wird die Materialliste auf jedem Knoten leer sein. - Vorzug nehmen.
binaryMode = truefür GLB Binary GLB ist eine einzelne, in sich geschlossene Datei und lädt schneller in Browsern und Engines als die JSON + .bin Split. - Verwendung
openFromBuffer()in Serverlosen Umgebungen Um vorübergehende Datei-Ein- und Ausgänge zu vermeiden. Holen Sie den Asset, geben Sie dieBufferdirekt und schreiben Sie den Ausgang in einen Stream oder anderen Puffer. - Überprüfung
node.entityvor dem Gießen: nicht alle Knoten tragen eine Entität. Immer mit einem Schutz zu bewacheninstanceofÜberprüfen Sie vor dem Zugriff.Mesh- spezifische Eigenschaften wie z.B.controlPoints. - Setz
normalizeNormal = truein derObjLoadOptionsDies verhindert, dass sich degenerierte Normale in nachgelagerte Renderings- oder Validierungsschritte ausbreiten. - Halten Sie es.
strict: truein tsconfig.json:Die Bibliothek ist mit:noImplicitAnyund .strictNullChecks.- Auslösung .strictMaskiert echte Typfehler und überschreitet den Wert der eingegebenen API. - Durchschnittsweg
childNodes, nicht eine Indexschleife:Die:childNodesDie Eigenschaft gibt eine Iterable zurück; vermeiden Sie die Abhängigkeit von numerischer Indexierung für die Kompatibilität mit der Zukunft.
Häufige Probleme
| Symptom der | Wahrscheinliche Ursache | Behebung |
|---|---|---|
| Liste der Materialien leer nach OBJ-Ladung | enableMaterials nicht festgelegt | Setz options.enableMaterials = true |
| GLB-Datei enthält separate .bin Seitenwagen | binaryMode Verzug auf false | Setz opts.binaryMode = true |
| Vertexnormen fehlen im STL-Ausgang | STL ASCII-Modus lässt Normalwerte pro Gesicht aus | Umschalten auf: binaryMode = true oder berechnen vor der Ausfuhr Normale. |
node.entity ist immer null | Nur durchqueren rootNode, nicht seine Kinder . | Rückgriff auf die node.childNodes |
| TypeScript-Fehler: Eigenschaft nicht vorhanden | Alte @types Cache-Dateien | Lauf ! npm install @aspose/3d wieder; keine getrennte @types Paket ist erforderlich. |
openFromBuffer Formatfehler entsteht | Format nicht automatisch durch Zauberei erkannt werden kann | Übergeben Sie die Klasse der Option für das explizite Format als zweites Argument |
Häufig gestellte Fragen
Ist die Bibliothek benötigt irgendwelche native Addons oder Systempakete? Aspose.3D FOSS für TypeScript hat eine einzige Laufzeit-Abhängigkeit: xmldom, das reine JavaScript ist und automatisch von npm installiert wird. Es gibt keine .node Native Addons und keine Systempakete zu installieren.
Welche Node.js-Versionen werden unterstützt? Node.js 18, 20, and 22 LTS. The library targets CommonJS output and uses ES2020 language features internally.
Kann ich die Bibliothek in einem Browser-Bundle (webpack/esbuild) verwenden? Die Bibliothek richtet sich an Node.js und verwendet die Node .js fs und . Buffer APIs. Browser-Bundling wird nicht offiziell unterstützt. Für die Verwendung des Browsers, laden Sie die Szene auf der Serverseite und übermitteln das Ergebnis (z. B. als GLB) an den Client.
Was ist der Unterschied zwischen GltfSaveOptions.binaryMode = true und . false? binaryMode = false produziert eine .gltf JSON-Datei plus eine separate Datei .bin Binär-Bufferseitenwagen. binaryMode = true produziert eine einzelne, in sich geschlossene .glb Die Datei. true für die Lieferung von Produktionsgütern.
Kann ich eine Datei aus einer HTTP-Antwort laden, ohne sie auf Festplatte zu speichern? Ja, hol die Antwort als eine Buffer (z. B. mit Hilfe von node-fetch oder der eingebaute fetch in Knoten 18+), dann aufrufen scene.openFromBuffer(buffer, options).
Ist der FBX-Support abgeschlossen? Nein. FBX-Importeur und -Exporter gibt es in der Bibliothek, aber FBx ist nicht mit dem System verbunden. Scene.open() oder Scene.save() - Ich rufe. scene.open('file.fbx') wird den FBX-Importeur nicht aufrufen; die Datei wird vom STL-Fallback-Pfad verarbeitet. Verwenden Sie direkt die FBx-spezifischen Importer/Exporter-Klassen, wenn Sie FB X E / O benötigen. Sehen Sie die Tabelle über das Formatunterstützung oben, in der FB x als markiert ist No*.
Unterstützt die Bibliothek TypeScript 4.x? TypScript 5.0+ wird empfohlen. TypeScript 4.7+ sollte in der Praxis funktionieren, aber die Bibliothek ist gegen 5. 0+ getestet und verfasst.
Zusammenfassung der API-Referenzen
| Klasse | Modul (Module) | Zweck der Veranstaltung |
|---|---|---|
Scene | @aspose/3d | Top-Level-Szenecontainer; open(), openFromBuffer(), save(), rootNode, animationClips |
Node | @aspose/3d | Szenengrafenknoten; childNodes, entity, transform, materials, createChildNode() |
Entity | @aspose/3d | Basisklasse für Szenen-Anhafteobjekte |
SceneObject | @aspose/3d | Basisklasse geteilt von: Node und . Entity |
A3DObject | @aspose/3d | Wurzelbasis mit name und Sachtasche |
Transform | @aspose/3d | Lokale Übersetzung, Rotation und Umfang |
Mesh | @aspose/3d | mit einem Durchmesser von mehr als 20 mm,; controlPoints, polygonCount, createPolygon(), Oberwinkel-Elemente |
Geometry | @aspose/3d | Basisklasse für Geometrie-Typen |
Camera | @aspose/3d | Kamera-Einheit mit Sichtfeld- und Projektionseinstellungen |
Light | @aspose/3d | Lichtentität (Punkt, Richtungsrichtung, Fleck) |
LambertMaterial | @aspose/3d | Diffuse + Umgebungs-Schattenmodell |
PhongMaterial | @aspose/3d | Phong-Schatten mit Spiegel und Emissionsschutz |
PbrMaterial | @aspose/3d | Physikalisch basierte Rauheit/Metallmodell für glTF |
Vector3 | @aspose/3d | 3-component double-precision vector |
Vector4 | @aspose/3d | 4-component vector for homogeneous math |
Matrix4 | @aspose/3d | 4×4 transformation matrix |
Quaternion | @aspose/3d | Rotationsquaternion |
BoundingBox | @aspose/3d | Achsgebundene Grenzschachtel |
FVector3 | @aspose/3d | Einfachpräzisionsvariante von: Vector3 |
VertexElementNormal | @aspose/3d | Normalen für den Vertex oder das Polygon-Vertex |
VertexElementUV | @aspose/3d | Element der Texturkoordinaten-Werthaupteile |
VertexElementVertexColor | @aspose/3d | Per-vertex Farbvorwinkel Element |
MappingMode | @aspose/3d | - Ich weiß.: CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME |
ReferenceMode | @aspose/3d | - Ich weiß.: DIRECT, INDEX, INDEX_TO_DIRECT |
AnimationClip | @aspose/3d | Bezeichnete Animationen; Expositions animations: AnimationNode[]; erstellt durch: scene.createAnimationClip(name) |
AnimationNode | @aspose/3d | Benannte Gruppe von BindPoints; erstellt über clip.createAnimationNode(name) |
BindPoint | @aspose/3d | Die Kommission hat die AnimationNode zu einer Szenenobjekt-Eigenschaft; exponiert property und . channelsCount |
AnimationChannel | @aspose/3d | Ausdehnung KeyframeSequence;Die Kommission hat eine keyframeSequence; über die Internetverbindung zugegriffen werden. bindPoint.getChannel(name) |
KeyFrame | @aspose/3d | Einmalige Zeit-/Wertschlüsselramenpaar; trägt interpolation: Interpolation |
KeyframeSequence | @aspose/3d | Bestellt . keyFrames Liste; preBehavior/postBehavior sind Extrapolation Objekte |
Interpolation | @aspose/3d | - Ich weiß.: LINEAR, CONSTANT, BEZIER, B_SPLINE, CARDINAL_SPLINE, TCB_SPLINE |
Extrapolation | @aspose/3d | Klasse mit: type: ExtrapolationType und . repeatCount: number |
ExtrapolationType | @aspose/3d | - Ich weiß.: CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE |
ObjLoadOptions | @aspose/3d/formats/obj | Importablösungen für OBJ: enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
GltfSaveOptions | @aspose/3d/formats/gltf | Ausfuhrmöglichkeiten für glTF/GLB: binaryMode |
GltfFormat | @aspose/3d/formats/gltf | Format-Instanz für glTF/GLB; auf die scene.save() |
StlLoadOptions | @aspose/3d/formats/stl | Importoptionen für STL |
StlSaveOptions | @aspose/3d/formats/stl | Ausfuhrmöglichkeiten für STL: binaryMode |
StlImporter | @aspose/3d/formats/stl | STL-Lesegerät mit niedrigem Niveau |
StlExporter | @aspose/3d/formats/stl | Schreibstärke von STL auf niedriger Ebene |