Class Mesh
Πακέτο: @aspose/3d (v24.12.0)
Mesh είναι επίσης διαθέσιμο μέσω της εισαγωγής υπο-διαδρομής @aspose/3d/entities.
Το Mesh είναι η κύρια οντότητα γεωμετρίας πολυγώνων στο @aspose/3d. Αποθηκεύει τις θέσεις των κορυφών ως σημεία ελέγχου, ορίζει τα πολύγωνα μέσω λιστών δεικτών κορυφών, και υποστηρίζει πολλαπλά επίπεδα δεδομένων στοιχείων κορυφών όπως οι κανονικές και οι συντεταγμένες UV.
export class Mesh extends GeometryImageRenderOptions
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
controlPoints | Vector4[] | Οι θέσεις των κορυφών του mesh. Κάθε σημείο χρησιμοποιεί ομογενείς συντεταγμένες (x, y, z, w). Προσθέστε σημεία σπρώχνοντας σε αυτόν τον πίνακα πριν ορίσετε πολύγωνα. |
polygonCount | number | Μόνο για ανάγνωση. Ο αριθμός των πολυγώνων (προσώπων) που είναι αυτή τη στιγμή ορισμένοι στο mesh. |
polygons | number[][] | Μόνο για ανάγνωση. Ο πίνακας δεικτών πολυγώνων. Κάθε καταχώρηση είναι ένας πίνακας δεικτών σημείων ελέγχου που ορίζουν ένα πρόσωπο. |
edges | number[] | Η λίστα ακμών, χρησιμοποιείται για σήμανση σκληρών ακμών και βαρύτητα πτυχών. |
vertexElements | VertexElement[] | Η συλλογή των επιπέδων στοιχείων κορυφών (normals, UVs, χρώματα κορυφών κ.λπ.) που είναι προσαρτημένα σε αυτό το mesh. |
visible | boolean | Αν το mesh αποδίδεται. Η προεπιλογή είναι true. |
castShadows | boolean | Αν το mesh ρίχνει σκιές σε υποστηριζόμενους renderers. Η προεπιλογή είναι true. |
receiveShadows | boolean | Αν το mesh λαμβάνει σκιές από άλλα αντικείμενα. Η προεπιλογή είναι true. |
ImageRenderOptions
createPolygon(…indices)
Ορίζει ένα νέο πρόσωπο πολυγώνου χρησιμοποιώντας τα παρεχόμενα δείκτες σημείων ελέγχου. Οι δείκτες πρέπει να αναφέρονται σε έγκυρες θέσεις στο controlPoints.
createPolygon(...indices: number[]): voidImageRenderOptions
...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(): MeshImageRenderOptions
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(): MeshImageRenderOptions
Mesh
Αυτή η παρουσία του πλέγματος.
static union(a, b)
NOT IMPLEMENTED. Αυτή η μέθοδος ορίζεται στην επιφάνεια του API αλλά ρίχνει Error('union is not implemented') κατά το χρόνο εκτέλεσης. Μην την καλέσετε σε κώδικα παραγωγής.
Εκτελεί μια Boolean ένωση δύο πλεγμάτων. Το αποτέλεσμα περιέχει τον συνδυασμένο όγκο και των δύο εισόδων.
static union(a: Mesh, b: Mesh): MeshImageRenderOptions
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): MeshImageRenderOptions
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): MeshImageRenderOptions
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
): VertexElementImageRenderOptions
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
): VertexElementUVImageRenderOptions
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}`);