Class Mesh

بسته: @aspose/3d (v24.12.0)

Mesh همچنین از طریق وارد کردن زیرمسیر در دسترس است @aspose/3d/entities.

Mesh اصلی‌ترین موجودیت هندسه چندضلعی در @aspose/3d. موقعیت‌های راس‌ها را به عنوان نقاط کنترل ذخیره می‌کند، سطوح چندضلعی را با فهرست‌های شاخص راس تعریف می‌کند و از لایه‌های داده‌ای متعدد عنصر راس مانند نرمال‌ها و مختصات UV پشتیبانی می‌کند.

export class Mesh extends Geometry

ImageRenderOptions

A3DObject ← SceneObject ← Entity ← Geometry ← Mesh

ImageRenderOptions

یک مش تک‌مثلثی بسازید، آن را به صحنه متصل کنید و به فرمت GLB ذخیره کنید.

import { Scene, Vector4 } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

// Create the mesh and define three control points (vertices)
const mesh = new Mesh();
mesh.controlPoints.push(
  new Vector4(0, 1, 0, 1),   // apex
  new Vector4(-1, 0, 0, 1),  // bottom-left
  new Vector4(1, 0, 0, 1),   // bottom-right
);

// Define one triangular polygon using vertex indices
mesh.createPolygon(0, 1, 2);

// Attach the mesh to the scene and save (extension infers GLB format)
const scene = new Scene();
scene.rootNode.createChildNode('triangle', mesh);
scene.save('triangle.glb');
console.log(`Polygon count: ${mesh.polygonCount}`); // 1

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
controlPointsVector4[]موقعیت‌های راس مش. هر نقطه از مختصات همگن استفاده می‌کند (x, y, z, w). نقاط را با افزودن به این آرایه قبل از تعریف چندضلعی‌ها اضافه کنید.
polygonCountnumberفقط‑خواندنی. تعداد چندضلعی‌ها (سطوح) که در حال حاضر بر روی مش تعریف شده‌اند.
polygonsnumber[][]فقط‑خواندنی. جدول شاخص‌های چندضلعی. هر ورودی یک آرایه از شاخص‌های نقطه کنترل است که یک سطح را تعریف می‌کند.
edgesnumber[]فهرست لبه‌ها، که برای علامت‌گذاری لبه‌های سخت و وزن‌گذاری چین‌ها استفاده می‌شود.
vertexElementsVertexElement[]مجموعه‌ای از لایه‌های عنصر راس (نرمال‌ها، UVها، رنگ‌های راس، و غیره) که به این مش متصل هستند.
visiblebooleanاین که آیا مش رندر می‌شود. پیش‌فرض است true.
castShadowsbooleanاین که آیا مش در رندررهای پشتیبانی‌شده سایه می‌اندازد. پیش‌فرض است true.
receiveShadowsbooleanاین که آیا مش سایه‌ها را از اشیاء دیگر دریافت می‌کند. پیش‌فرض است true.

ImageRenderOptions

createPolygon(…indices)

یک سطح چندضلعی جدید را با استفاده از شاخص‌های نقطه کنترل ارائه‌شده تعریف می‌کند. شاخص‌ها باید به موقعیت‌های معتبر در controlPoints.

createPolygon(...indices: number[]): void

ImageRenderOptions

...indices number[]

سه یا بیشتر ایندکس صفر‑پایه به controlPoints آرایه، به ترتیب پیچش پادساعتگرد.

ImageRenderOptions

void

ImageRenderOptions

import { Vector4 } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const mesh = new Mesh();
mesh.controlPoints.push(
  new Vector4(0, 0, 0, 1),
  new Vector4(1, 0, 0, 1),
  new Vector4(1, 1, 0, 1),
  new Vector4(0, 1, 0, 1),
);
// Define a quad as two triangles, or a single quad polygon:
mesh.createPolygon(0, 1, 2, 3);
console.log(`Polygons: ${mesh.polygonCount}`); // 1

triangulate()

تمام چندضلعی‌های غیر‑مثلثی در این مش را به مثلث‌ها تبدیل می‌کند. مش مثلث‌بندی‌شده را برمی‌گرداند (ممکن است همان نمونه باشد یا نمونه‌ای جدید).

triangulate(): Mesh

ImageRenderOptions

Mesh

مش مثلث‌بندی‌شده.

ImageRenderOptions

import { Vector4 } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const mesh = new Mesh();
mesh.controlPoints.push(
  new Vector4(0, 0, 0, 1),
  new Vector4(1, 0, 0, 1),
  new Vector4(1, 1, 0, 1),
  new Vector4(0, 1, 0, 1),
);
mesh.createPolygon(0, 1, 2, 3); // quad
const triangulated = mesh.triangulate();
console.log(`Polygons after triangulation: ${triangulated.polygonCount}`); // 2

toMesh()

مش را به عنوان یک Mesh نمونه. برای Mesh در اشیاء این یک عملیات هویت است؛ این متد در انواع هندسهٔ اولیه که از Geometry.

toMesh(): Mesh

ImageRenderOptions

Mesh

این نمونه مش.


static union(a, b)

NOT IMPLEMENTED. این متد در سطح API تعریف شده است اما استثنا می‌اندازد Error('union is not implemented') در زمان اجرا. از آن در کد تولیدی استفاده نکنید.

یک اتحاد بولی بین دو مش انجام می‌دهد. نتیجه شامل حجم ترکیبی هر دو ورودی است.

static union(a: Mesh, b: Mesh): Mesh

ImageRenderOptions

a Mesh

عملوند اولین مش.

b Mesh

عملوند دومین مش.

ImageRenderOptions

Mesh

یک مش جدید که نمایانگر اتحاد a و b.

ImageRenderOptions

import { Mesh } from '@aspose/3d/entities';

// Assumes meshA and meshB are already populated Mesh instances
const combined = Mesh.union(meshA, meshB);
console.log(`Union polygon count: ${combined.polygonCount}`);

static difference(a, b)

NOT IMPLEMENTED. این متد در سطح API تعریف شده است اما استثنا می‌اندازد Error('difference is not implemented') در زمان اجرا. از آن در کد تولیدی استفاده نکنید.

یک تفاضل بولی انجام می‌دهد و حجم مش b از مش a.

static difference(a: Mesh, b: Mesh): Mesh

ImageRenderOptions

a Mesh

مش پایه.

b Mesh

مش برای کسر از a.

ImageRenderOptions

Mesh

یک مش جدید که نمایانگر a منهای b.

ImageRenderOptions

import { Mesh } from '@aspose/3d/entities';

const result = Mesh.difference(meshA, meshB);
console.log(`Difference polygon count: ${result.polygonCount}`);

static intersect(a, b)

NOT IMPLEMENTED. این متد در سطح API تعریف شده است اما استثنا می‌اندازد Error('intersect is not implemented') در زمان اجرا. از فراخوانی آن در کد تولیدی خودداری کنید.

تقاطع بولی دو مش را انجام می‌دهد. نتیجه فقط شامل حجم مشترک است.

static intersect(a: Mesh, b: Mesh): Mesh

ImageRenderOptions

a Mesh

عملوند اولین مش.

b Mesh

عملوند دومین مش.

ImageRenderOptions

Mesh

یک مش جدید که نمایانگر تقاطع از a و b.

ImageRenderOptions

import { Mesh } from '@aspose/3d/entities';

const overlap = Mesh.intersect(meshA, meshB);
console.log(`Intersection polygon count: ${overlap.polygonCount}`);

createElement(type, mapping?, reference?)

یک مورد جدید ایجاد می‌کند VertexElement لایه داده بر روی این مش برای ویژگی‌های سفارشی به ازای هر راس.

createElement(
  type: VertexElementType,
  mapping?: MappingMode,
  reference?: ReferenceMode
): VertexElement

ImageRenderOptions

type VertexElementType

نوع ویژگی راس برای ایجاد (به عنوان مثال،, VertexElementType.Normal).

mapping MappingMode (اختیاری)

چگونگی نگاشت داده‌های عنصر به توپولوژی مش. به‌صورت پیش‌فرض MappingMode.ControlPoint.

reference ReferenceMode (اختیاری)

چگونگی ارجاع ایندکس‌های عنصر به آرایه داده‌ها. به‌صورت پیش‌فرض ReferenceMode.Direct.

ImageRenderOptions

VertexElement

لایه عنصر راسی که به‌تازگی ایجاد شده.


createElementUV(mapping, mappingMode?, referenceMode?)

یک لایه مختصات UV بر روی این مش ایجاد می‌کند.

createElementUV(
  mapping: TextureMapping,
  mappingMode?: MappingMode,
  referenceMode?: ReferenceMode
): VertexElementUV

ImageRenderOptions

mapping TextureMapping

کانال UV برای ایجاد (به عنوان مثال،, TextureMapping.Diffuse).

mappingMode MappingMode (اختیاری)

نحوه نگاشت مختصات UV به رئوس.

referenceMode ReferenceMode (اختیاری)

نحوه ارجاع داده‌های ایندکس UV به آرایه UV.

ImageRenderOptions

VertexElementUV

لایه عنصر UV تازه ایجاد شده.

ImageRenderOptions

import { Mesh } from '@aspose/3d/entities';
import { TextureMapping } from '@aspose/3d';

const mesh = new Mesh();
// ... define control points and polygons ...
const uvLayer = mesh.createElementUV(TextureMapping.Diffuse);
console.log(`UV element created: ${uvLayer !== undefined}`);
 فارسی