ویژگیها و عملکردها
Aspose.3D FOSS برای TypeScript یک کتابخانه Node.js تحت مجوز MIT است که برای بارگذاری، ساخت و خروجیگیری صحنههای سهبعدی استفاده میشود. این کتابخانه همراه با تعاریف کامل نوع TypeScript و یک وابستگی زمان اجرا (xmldom), و پشتیبانی از شش فرمت فایل سهبعدی اصلی. این صفحه مرجع اصلی برای تمام حوزههای ویژگی است و شامل مثالهای کد TypeScript قابل اجرا برای هر یک میباشد.
نصب و راهاندازی
پکیج را از npm با یک فرمان واحد نصب کنید:
npm install @aspose/3dاین بسته برای CommonJS هدفگذاری شده و به Node.js نسخه ۱۸ یا بالاتر نیاز دارد. پس از نصب، اطمینان حاصل کنید که tsconfig.json شامل گزینههای کامپایلر زیر برای سازگاری کامل است:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"moduleResolution": "node",
"esModuleInterop": true,
"strict": true
}
}کلاس اصلی را وارد کنید Scene از ریشه بسته. کلاسهای گزینههای مخصوص هر فرمت از مسیرهای فرعی مربوطه وارد میشوند:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';ویژگیها و عملکردها
پشتیبانی از فرمتها
Aspose.3D FOSS for TypeScript شش فرمت اصلی فایلهای سهبعدی را میخواند و مینویسد. تشخیص فرمت بهصورت خودکار از اعداد جادویی باینری هنگام بارگذاری انجام میشود، بنابراین نیازی به مشخص کردن صریح فرمت منبع ندارید.
| قالب | خواندن | نوشتن | یادداشتها |
|---|---|---|---|
| OBJ (Wavefront) | لطفاً | بله | خواندن/نوشتن .mtl مواد؛ استفاده ObjLoadOptions.enableMaterials برای import |
| glTF 2.0 | بله | بله | قالب متنی JSON؛ مواد PBR |
| GLB | بله | بله | glTF باینری؛ مجموعه GltfSaveOptions.binaryMode = true |
| STL | بله | بله | دودویی و ASCII؛ دور کامل تأیید شد |
| 3MF | بله | بله | 3D Manufacturing Format with color and material metadata |
| FBX | خیر* | خیر* | واردکننده/صادرکننده موجود است اما تشخیص خودکار قالب وصل نشده است |
| COLLADA (DAE) | بله | بله | مقیاس واحد، هندسه، مواد و کلیپهای انیمیشن |
بارگذاری OBJ همراه با متریالها:
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);ذخیره به GLB (binary 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);گراف صحنه
تمام محتوای سهبعدی به صورت یک درخت از Node اشیائی که ریشه در scene.rootNode. هر گره میتواند یک Entity (یک Mesh, Camera, Light, یا دیگر SceneObject) و یک Transform که موقعیت آن را نسبت به والدش تعیین میکند.
کلاسهای کلیدی گراف صحنه:
Scene: محفظه سطح بالایی؛ نگهدارندهrootNodeوanimationClipsNode: گره درختی نامگذاریشده باchildNodes,entity,transform,، وmaterialsEntity: کلاس پایه برای اشیای قابل پیوست (Mesh,Camera,Light)SceneObject: کلاس پایه بهاشتراکگذاشتهشده توسطNodeوEntityA3DObject: کلاس پایه ریشه باname: و بسته ویژگیTransform: جابهجایی محلی، چرخش (یولر و کواترنیون) و مقیاس
پیمایش گراف صحنه:
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);ایجاد سلسلهمراتب صحنه بهصورت برنامهنویسی:
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);هندسه و مش
Mesh : نوع هندسهٔ اصلی است. این کلاس … را گسترش میدهد Geometry : و نقاط کنترل (رئوس)، ایندکسهای چندضلعی و عناصر رئوس برای نرمالها، UVها و رنگهای رئوس را در دسترس میگذارد.
کلاسهای کلیدی هندسه:
Mesh: مش چندضلعی باcontrolPoints: وpolygonCountGeometry: کلاس پایه با مدیریت عناصر رئوسVertexElementNormal: نرمالهای per-vertex یا per-polygon-vertexVertexElementUV: مختصات بافت (یک یا چند کانال UV)VertexElementVertexColor: دادههای رنگ per-vertexMappingMode: نحوه نگاشت دادههای عنصر به چندضلعیها را کنترل میکند (CONTROL_POINT,POLYGON_VERTEX,POLYGON,EDGE,ALL_SAME)ReferenceMode: استراتژی ایندکسگذاری را کنترل میکند (DIRECT,INDEX,INDEX_TO_DIRECT)VertexElementType: معنای یک عنصر راس را شناسایی میکندTextureMapping: شمارش کانال بافت
خواندن دادههای مش از یک صحنه بارگذاریشده:
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}`);
}
}
}سیستم مواد
Aspose.3D FOSS برای TypeScript از سه نوع متریال پشتیبانی میکند که تمام بازه از سایهزنی Phong قدیمی تا رندر فیزیکی‑مبنا را پوشش میدهند:
LambertMaterial: رنگ diffuse و رنگ ambient؛ به مواد ساده OBJ/DAE نگاشت میشودPhongMaterial: رنگ براق، درخشندگی و تابش را اضافه میکند؛ نوع پیشفرض متریال OBJPbrMaterial: مدل فیزیکی-مبتنی بر زبرینگی/فلزی؛ برای واردات و صادرات glTF 2.0 استفاده میشود
خواندن مواد از یک صحنه OBJ بارگذاریشده:
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)}`);
}
}
}اعمال یک ماده PBR هنگام ساخت صحنه glTF:
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);ابزارهای ریاضی
این کتابخانه همراه با مجموعه کاملی از انواع ریاضیات 3D عرضه میشود که همه بهطور کامل تایپدار هستند:
Vector3: بردار ۳ مؤلفهای؛ پشتیبانی میکندminus(),times(),dot(),cross(),normalize(),length,angleBetween()Vector4: بردار ۴ مؤلفهای برای مختصات همگنMatrix4: ماتریس تبدیل ۴×۴ باconcatenate(),transpose,decompose,setTRSQuaternion: کواترنین چرخش باfromEulerAngle()(ایستا، تکتکه)،,eulerAngles()(متد نمونه)،,slerp(),normalize()BoundingBox: جعبه محدودکننده محور-محور باminimum,maximum,center,size,mergeFVector3: نسخه تکدقت ازVector3: در دادههای عنصر راس استفاده میشود
محاسبه جعبه محدودکننده از رئوس مش:
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);ساخت تبدیل از زاویههای اویلر:
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));سیستم انیمیشن
API انیمیشن کلیپها، گرهها، کانالها و توالیهای فریم کلیدی را مدلسازی میکند:
AnimationClip: مجموعه نامگذاریشدهای از گرههای انیمیشن؛ دسترسی از طریقscene.animationClips; نمایش میدهدanimations: AnimationNode[]AnimationNode: گروه نامگذاریشدهای ازBindPointها; ایجاد شده از طریقclip.createAnimationNode(name), دسترسی از طریقclip.animationsBindPoint: به یک متصل میکندAnimationNodeبه یک ویژگی خاص در یک شیء صحنه؛ نمایش میدهدpropertyوchannelsCountAnimationChannel: گسترش میدهدKeyframeSequence; یک مورد جداگانه نگه میداردkeyframeSequence; دسترسی از طریقbindPoint.getChannel(name)KeyFrame: یک جفت زمان/مقدار تک؛ در هر فریم کلیدی حمل میکندinterpolation: InterpolationKeyframeSequence: لیست مرتب ازKeyFrameاشیاء از طریقkeyFrames; داردpreBehaviorوpostBehavior(Extrapolation)Interpolation: enum:LINEAR,CONSTANT,BEZIER,B_SPLINE,CARDINAL_SPLINE,TCB_SPLINEExtrapolation: class باtype: ExtrapolationTypeوrepeatCount: numberExtrapolationType: enum:CONSTANT,GRADIENT,CYCLE,CYCLE_RELATIVE,OSCILLATE
خواندن دادههای انیمیشن از یک صحنه بارگذاریشده:
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}`);
}
}
}پشتیبانی از استریم و بافر
استفاده کنید scene.openFromBuffer() برای بارگذاری یک صحنه 3D بهصورت مستقیم از حافظهٔ درونحافظهای Buffer. این الگوی پیشنهادی برای توابع سرورلس، خطوط لولهٔ استریمینگ، و پردازش داراییهای دریافتشده از طریق HTTP بدون نوشتن روی دیسک.
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);
}
}تشخیص خودکار قالب بر اساس اعداد جادویی باینری هنگام بارگذاری از بافر اعمال میشود، بنابراین فایلهای GLB، STL باینری و 3MF بدون نیاز به تعیین پارامتر قالب شناسایی میشوند.
نمونههای استفاده
مثال ۱: بارگذاری OBJ و خروجی به GLB
این مثال یک فایل Wavefront OBJ همراه با متریالها را بارگذاری میکند، سپس صحنه را بهعنوان یک فایل باینری glTF (GLB) مناسب برای استفاده در وب و موتورهای بازی صادر مینماید.
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');مثال ۲: مسیر دورانی STL با اعتبارسنجی نرمالها
این مثال یک فایل STL باینری را بارگذاری میکند، اطلاعات نرمال هر راس را چاپ مینماید، سپس صحنه را بهعنوان STL ASCII صادر میکند و صحت مسیر دورانی را تأیید مینماید.
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);مثال 3: ساخت یک صحنه بهصورت برنامهنویسی و ذخیره بهعنوان glTF
این مثال یک صحنه با ماده PBR از ابتدا میسازد و آن را بهعنوان یک فایل JSON glTF ذخیره میکند.
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');نکات و بهترین شیوهها
- از
ObjLoadOptions.enableMaterials = trueهر زمان که به دادههای متریال از فایلهای .mtl نیاز دارید. بدون آن، فهرست متریال در هر گره خالی خواهد بود. - ترجیحاً
binaryMode = trueبرای GLB هنگام تولید داراییها برای وب یا موتورهای بازی. GLB باینری یک فایل تکتکهٔ خودکفا است و نسبت به تقسیم JSON + .bin، در مرورگرها و موتورها سریعتر بارگذاری میشود. - از
openFromBuffer()در محیطهای بدون سرور برای جلوگیری از I/O فایل موقت. دارایی را واکشی کنید، آن راBufferمستقیم، و خروجی را به یک جریان یا بافر دیگر بنویسید. - بررسی
node.entityقبل از تبدیل: همه گرهها موجودیتی ندارند. همیشه با یکinstanceofبررسی قبل از دسترسیMeshویژگیهای خاص مانندcontrolPoints. - تنظیم
normalizeNormal = trueدرObjLoadOptionsزمانی که فایلهای OBJ منبع شما از منابع غیرقابل اعتماد میآیند. این کار از انتشار نرمالهای معیوب به مراحل رندرینگ یا اعتبارسنجی بعدی جلوگیری میکند. - نگه دارید
strict: trueدر tsconfig.json: کتابخانه باnoImplicitAnyوstrictNullChecks. غیرفعالسازیstrictخطاهای واقعی نوع را پنهان میکند و ارزش API تایپشده را از بین میبرد. - پیمایش از طریق
childNodes,، نه یک حلقه ایندکس: اینchildNodesویژگی یک iterable برمیگرداند؛ از تکیه بر ایندکس عددی برای سازگاری آینده خودداری کنید.
مشکلات رایج
| نشانه | دلیل محتمل | رفع |
|---|---|---|
| فهرست مواد پس از بارگذاری OBJ خالی است | enableMaterials تنظیم نشده | تنظیم شد options.enableMaterials = true |
| فایل GLB شامل sidecar جداگانه .bin است | binaryMode بهصورت پیشفرض false | تنظیم شد opts.binaryMode = true |
| نرمالهای راس در خروجی STL موجود نیستند | حالت ASCII STL نرمالهای هر سطح را حذف میکند | تغییر به binaryMode = true یا قبل از خروجیگیری نرمالها را محاسبه کنید |
node.entity همیشه null | فقط پیمایش rootNode, نه فرزندان آن | بهصورت بازگشتی به node.childNodes |
| خطای TypeScript: ویژگی وجود ندارد | قدیمی @types کش | اجرا npm install @aspose/3d دوباره؛ بدون جدا @types بسته مورد نیاز است |
openFromBuffer خطای فرمت را پرتاب میکند | قالب بهصورت خودکار از magic قابل تشخیص نیست | کلاس گزینهٔ صریح format را بهعنوان آرگومان دوم پاس دهید |
سوالات متداول
آیا library به هیچ افزونهٔ بومی یا بستهٔ سیستمی نیاز دارد؟? شماره Aspose.3D FOSS برای TypeScript یک وابستگی زمان اجرا دارد: xmldom,، که یک JavaScript خالص است و بهصورت خودکار توسط npm نصب میشود. هیچ .node افزونه بومی وجود ندارد و هیچ بسته سیستمی برای نصب وجود ندارد.
کدام نسخههای Node.js پشتیبانی میشوند؟? Node.js 18، 20 و 22 LTS. این کتابخانه خروجی CommonJS هدف دارد و بهصورت داخلی از ویژگیهای زبانی ES2020 استفاده میکند.
آیا میتوانم از این کتابخانه در یک باندل مرورگر (webpack/esbuild) استفاده کنم؟? این کتابخانه هدف Node.js را دارد و از Node.js fs و Buffer APIها. بستهبندی برای مرورگر بهصورت رسمی پشتیبانی نمیشود. برای استفاده در مرورگر، صحنه را در سمت سرور بارگذاری کنید و نتیجه را (مثلاً بهصورت GLB) به کلاینت منتقل کنید.
تفاوت بین چیست؟ GltfSaveOptions.binaryMode = true و false? binaryMode = false یک … تولید میکند .gltf فایل JSON بههمراه یک … جداگانه .bin بافر باینری sidecar. binaryMode = true یک … خودکفا تولید میکند .glb فایل. استفاده کنید true برای تحویل داراییهای تولیدی.
آیا میتوانم فایلی را از پاسخ HTTP بارگذاری کنم بدون اینکه آن را روی دیسک ذخیره کنم؟? بله. پاسخ را به عنوان یک Buffer (مثلاً با استفاده از node-fetch یا توابع داخلی fetch در Node 18+)، سپس فراخوانی کنید scene.openFromBuffer(buffer, options).
آیا پشتیبانی از FBX کامل است؟? خیر. کلاسهای واردکننده و صادرکننده FBX در کتابخانه وجود دارند، اما FBX بهصورت یکپارچه در Scene.open() یا Scene.save() تشخیص خودکار. فراخوانی scene.open('file.fbx') فراخوانی نخواهد شد؛ فایل توسط مسیر پشتیبان STL پردازش میشود. اگر به ورودی/خروجی FBX نیاز دارید، مستقیماً از کلاسهای واردکننده/صادرکننده مخصوص FBX استفاده کنید. جدول پشتیبانی فرمتهای بالا را ببینید که FBX را به عنوان No*.
آیا کتابخانه از TypeScript 4.x پشتیبانی میکند؟? TypeScript 5.0+ توصیه میشود. TypeScript 4.7+ در عمل باید کار کند، اما کتابخانه در مقابل 5.0+ تست و توسعه یافته است.
خلاصه مرجع API
| کلاس | ماژول | هدف |
|---|---|---|
Scene | @aspose/3d | کانتینر صحنه سطح بالا؛; open(), openFromBuffer(), save(), rootNode, animationClips |
Node | @aspose/3d | گره گراف صحنه؛; childNodes, entity, transform, materials, createChildNode() |
Entity | @aspose/3d | کلاس پایه برای اشیاء قابل اتصال به صحنه |
SceneObject | @aspose/3d | کلاس پایهای که به اشتراک گذاشته شده توسط Node و Entity |
A3DObject | @aspose/3d | پایه ریشه با name و بسته ویژگیها |
Transform | @aspose/3d | جابجایی، چرخش و مقیاس محلی |
Mesh | @aspose/3d | مش چندضلعی؛; controlPoints, polygonCount, createPolygon(), عناصر راس |
Geometry | @aspose/3d | کلاس پایه برای انواع هندسه |
Camera | @aspose/3d | موجودیت دوربین با تنظیمات میدان دید و پروژکشن |
Light | @aspose/3d | موجودیت نور (نقطهای، جهتدار، اسپات) |
LambertMaterial | @aspose/3d | مدل سایهزنی پخش + محیطی |
PhongMaterial | @aspose/3d | سایهزنی فونگ با specular و emissive |
PbrMaterial | @aspose/3d | مدل فیزیکمحور زبرگی/فلزی برای 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 | کواترن چرخش |
BoundingBox | @aspose/3d | جعبه محدودکننده محور-محور |
FVector3 | @aspose/3d | نوع تکدقت Vector3 |
VertexElementNormal | @aspose/3d | نرمالهای هر راس یا هر راس چندضلعی |
VertexElementUV | @aspose/3d | عنصر راسی مختصات بافت |
VertexElementVertexColor | @aspose/3d | عنصر راسی رنگ هر راس |
MappingMode | @aspose/3d | شمارش: CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME |
ReferenceMode | @aspose/3d | شمارش: DIRECT, INDEX, INDEX_TO_DIRECT |
AnimationClip | @aspose/3d | انیمیشن نامدار؛ نمایش میدهد animations: AnimationNode[];؛ ایجاد شده از طریق scene.createAnimationClip(name) |
AnimationNode | @aspose/3d | گروه نامدار از BindPoints؛ ایجاد شده از طریق clip.createAnimationNode(name) |
BindPoint | @aspose/3d | یک … را متصل میکند AnimationNode به ویژگی شیء صحنه؛ نمایش میدهد property و channelsCount |
AnimationChannel | @aspose/3d | گسترش میدهد KeyframeSequence; نگه میدارد یک keyframeSequence; دسترسی از طریق bindPoint.getChannel(name) |
KeyFrame | @aspose/3d | جفت تک زمان/مقدار کلید‑فریم; حمل میکند interpolation: Interpolation |
KeyframeSequence | @aspose/3d | مرتب keyFrames فهرست; preBehavior/postBehavior هستند Extrapolation اشیاء |
Interpolation | @aspose/3d | Enum: LINEAR, CONSTANT, BEZIER, B_SPLINE, CARDINAL_SPLINE, TCB_SPLINE |
Extrapolation | @aspose/3d | کلاس با type: ExtrapolationType و repeatCount: number |
ExtrapolationType | @aspose/3d | Enum: CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE |
ObjLoadOptions | @aspose/3d/formats/obj | گزینههای واردات OBJ: enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
GltfSaveOptions | @aspose/3d/formats/gltf | گزینههای خروجی glTF/GLB: binaryMode |
GltfFormat | @aspose/3d/formats/gltf | نمونه فرمت برای glTF/GLB؛ به آن پاس دهید scene.save() |
StlLoadOptions | @aspose/3d/formats/stl | گزینههای واردات STL |
StlSaveOptions | @aspose/3d/formats/stl | گزینههای خروجی STL: binaryMode |
StlImporter | @aspose/3d/formats/stl | خواننده سطح پایین STL |
StlExporter | @aspose/3d/formats/stl | نویسنده سطح پایین STL |