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

Δημιουργήστε ένα μονό τριγωνικό mesh, συνδέστε το στη σκηνή και αποθηκεύστε το σε 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[]Οι θέσεις των κορυφών του mesh. Κάθε σημείο χρησιμοποιεί ομογενείς συντεταγμένες (x, y, z, w). Προσθέστε σημεία σπρώχνοντας σε αυτόν τον πίνακα πριν ορίσετε πολύγωνα.
polygonCountnumberΜόνο για ανάγνωση. Ο αριθμός των πολυγώνων (προσώπων) που είναι αυτή τη στιγμή ορισμένοι στο mesh.
polygonsnumber[][]Μόνο για ανάγνωση. Ο πίνακας δεικτών πολυγώνων. Κάθε καταχώρηση είναι ένας πίνακας δεικτών σημείων ελέγχου που ορίζουν ένα πρόσωπο.
edgesnumber[]Η λίστα ακμών, χρησιμοποιείται για σήμανση σκληρών ακμών και βαρύτητα πτυχών.
vertexElementsVertexElement[]Η συλλογή των επιπέδων στοιχείων κορυφών (normals, UVs, χρώματα κορυφών κ.λπ.) που είναι προσαρτημένα σε αυτό το mesh.
visiblebooleanΑν το mesh αποδίδεται. Η προεπιλογή είναι true.
castShadowsbooleanΑν το mesh ρίχνει σκιές σε υποστηριζόμενους renderers. Η προεπιλογή είναι true.
receiveShadowsbooleanΑν το mesh λαμβάνει σκιές από άλλα αντικείμενα. Η προεπιλογή είναι 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()

Μετατρέπει όλα τα μη τριγωνικά πολύγωνα σε αυτό το mesh σε τρίγωνα. Επιστρέφει το τριγωνοποιημένο mesh (μπορεί να είναι το ίδιο αντικείμενο ή ένα νέο).

triangulate(): Mesh

ImageRenderOptions

Mesh

Το τριγωνοποιημένο 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') κατά το χρόνο εκτέλεσης. Μην την καλέσετε σε κώδικα παραγωγής.

Εκτελεί μια Boolean ένωση δύο πλεγμάτων. Το αποτέλεσμα περιέχει τον συνδυασμένο όγκο και των δύο εισόδων.

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') κατά το χρόνο εκτέλεσης. Μην την καλέσετε σε κώδικα παραγωγής.

Εκτελεί μια Boolean διαφορά, αφαιρώντας τον όγκο του πλέγματος 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') κατά το χρόνο εκτέλεσης. Μην την καλέσετε σε κώδικα παραγωγής.

Εκτελεί μια Boolean τομή δύο πλεγμάτων. Το αποτέλεσμα περιέχει μόνο τον επικαλυπτόμενο όγκο.

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}`);
 Ελληνικά