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') בזמן ריצה. אל תקרא לה בקוד ייצור.

מבצע חיסור בוליאני, מחסיר את נפח ה‑mesh b מ‑mesh a.

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

ImageRenderOptions

a Mesh

רשת הבסיס.

b Mesh

ה‑mesh שממנו מחסרים a.

ImageRenderOptions

Mesh

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}`);
 עברית