API Overview — @aspose/3d for TypeScript

بسته: @aspose/3d (v24.12.0) زبان: TypeScript / Node.js 18+ مجوز: MIT

@aspose/3d یک کتابخانه تحت مجوز MIT برای خواندن، ساخت و خروجی‌گیری از صحنه‌های سه‌بعدی در Node.js است. این کتابخانه همراه با تعاریف کامل نوع TypeScript، یک وابستگی زمان اجرا ( «<SEG_7»> )، و پشتیبانی از هفت فرمت اصلی فایل‌های سه‌بعدی عرضه می‌شود. تمام ورودی/خروجی‌ها به صورت همزمان هستند. هیچ افزونه بومی مورد نیاز نیست.xmldom),.


Example

npm install @aspose/3d

Example tsconfig.json تنظیمات برای حل صحیح زیرمسیرها:

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

دسترسی به جای‌دار

Example

محفظه ریشه برای یک صحنه سه‌بعدی. تمام محتوا؛ گره‌ها، هندسه، مواد و انیمیشن‌ها؛ در درختی که ریشه آن scene.rootNode. استفاده کنید open() / openFromBuffer() برای بارگذاری یک فایل و save() / saveToBuffer() برای خروجی گرفتن.

ExampleExampleExample
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ایجاد و ثبت یک کلیپ انیمیشن جدید

Example

یک گره درختی نام‌دار در گراف صحنه. گره‌ها یک (اختیاری) حمل می‌کنند Entity (mesh, camera, light) و یک Transform که موقعیت گره را نسبت به والد آن تعیین می‌کند.

ExampleExampleExample
namestringنام گره
childNodesNode[]گره‌های فرزند مستقیم
entity`Entitynull`
transformTransformترجمه، چرخش و مقیاس محلی
materialsMaterial[]موادی که به این گره اختصاص داده شده‌اند
createChildNode(name)(string) → Nodeافزودن گره فرزند
getChildNode(name)`(string) → Nodenull`

Example

مش چندضلعی؛ نوع اصلی هندسه. گسترش می‌یابد Geometry.

ExampleExampleExample
controlPointsVector4[]موقعیت‌های راس (w=1 برای موقعیت‌ها)
polygonCountnumberتعداد چندضلعی‌ها
createPolygon(indices)(number[]) → voidافزودن یک چندضلعی (مثلث یا چهارضلعی)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementایجاد یک عنصر راس

Example

تبدیل محلی اعمال‌شده بر یک گره.

ExampleExampleExample
translationVector3موقعیت محلی
eulerAnglesVector3چرخش اویلر به درجه (ترتیب XYZ)
rotationQuaternionچرخش به صورت کواترنیون
scalingVector3مقیاس محلی

کلاس‌های متریال

ExampleExampleویژگی‌های کلیدی
LambertMaterialDiffuse + سایه‌زنی محیطیdiffuseColor, ambientColor, transparency
PhongMaterialبه Lambert، specular + emissive اضافه می‌کندspecularColor, shininess, emissiveColor
PbrMaterialمبتنی بر فیزیک برای glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

کلاس‌های ریاضی

ExampleExample
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3گونهٔ تک‌دقتی که در داده‌های vertex استفاده می‌شود
Matrix44×4 transformation matrix; multiply, invert, decompose
Quaternionکواترنین چرخش؛; fromEulerAngle, toEulerAngles, slerp
BoundingBoxجعبهٔ محدود‌کنندهٔ محور‑محور؛; minimum, maximum, center, size, merge

کلاس‌های انیمیشن

ExampleExample
AnimationClipکلیپ نام‌دار؛ شامل AnimationNode فهرست؛ دسترسی از طریق scene.animationClips
AnimationNodeیک کلیپ را به گرهٔ صحنهٔ نام‌دار متصل می‌کند؛ شامل AnimationChannel لیست
AnimationChannelیک ویژگی واحد را هدف می‌گیرد (مثلاً translation X)؛ یک KeyframeSequence
KeyframeSequenceلیست مرتب از KeyFrame اشیاء با interpolation و extrapolation
KeyFrameیک جفت زمان/مقدار

Example

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

Exampleگزینه‌های کلیدی
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

ماژول glTF/GLB (@aspose/3d/formats/gltf)

Exampleگزینه‌های کلیدی
GltfSaveOptionsbinaryMode (true → .glb)،, flipTexCoordV
GltfFormatGltfFormat.getInstance(): نمونهٔ فرمت برای scene.save()

ماژول STL (@aspose/3d/formats/stl)

Exampleگزینه‌های کلیدی
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII، true → binary)

ماژول FBX (@aspose/3d/formats/fbx)

Exampleگزینه‌های کلیدی
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

فرمت‌های پشتیبانی‌شده

ExampleExampleExampleExample
Example.objExampleExample
glTF 2.0.gltfExampleExample
Example.glbExampleExample
STL.stlExampleExample
FBX.fbxخیر*خیر*
COLLADA.daeExampleExample
3MF.3mfExampleExample

مثال مرجع سریع

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

همچنین ببینید

 فارسی