Class Mesh
Csomag: @aspose/3d (v24.12.0)
Mesh szintén elérhető az alútvonal importálásával @aspose/3d/entities.
A Mesh a fő polygon geometriai entitás a @aspose/3d. Tárolja a csúcspontok pozícióit vezérlőpontként, a polygon felületeket csúcsindex-listákkal definiálja, és több csúcs elem adat réteget támogat, például normálokat és UV koordinátákat.
export class Mesh extends GeometryImageRenderOptions
A3DObject ← SceneObject ← Entity ← Geometry ← Mesh
ImageRenderOptions
Építs egy egyszerű háromszög mesh-et, csatold a jelenethez, és mentsd GLB formátumban.
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[] | A háló csúcspontjainak pozíciói. Minden pont homogén koordinátákat használ (x, y, z, w). Pontok hozzáadása azzal, hogy ebbe a tömbbe tolod őket a poligonok definiálása előtt. |
polygonCount | number | Csak olvasható. A hálón jelenleg definiált poligonok (felületek) száma. |
polygons | number[][] | Csak olvasható. A polygon index tábla. Minden bejegyzés egy vezérlőpont indexekből álló tömb, amely egy felületet definiál. |
edges | number[] | Az él lista, amelyet a kemény él jelöléshez és a redő súlyozásához használnak. |
vertexElements | VertexElement[] | A csúcs elem rétegek (normálok, UV-k, csúcs színek stb.) gyűjteménye, amely a hálóhoz van csatolva. |
visible | boolean | Azt jelzi, hogy a háló renderelve van-e. Alapértelmezett érték: true. |
castShadows | boolean | Azt jelzi, hogy a háló árnyékot vet-e a támogatott renderelőkben. Alapértelmezett érték: true. |
receiveShadows | boolean | Azt jelzi, hogy a háló kap-e árnyékot más objektumoktól. Alapértelmezett érték: true. |
ImageRenderOptions
createPolygon(…indices)
Új polygon felületet definiál a megadott vezérlőpont indexekkel. Az indexeknek érvényes pozíciókra kell hivatkozni a controlPoints.
createPolygon(...indices: number[]): voidImageRenderOptions
...indices number[]
Három vagy több nullától kezdődő index a controlPoints tömb, az óramutató járásával ellentétes tekerési sorrendben.
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()
Átalakítja a mesh összes nem háromszög alakú sokszögét háromszögekké. Visszaadja a triangulált mesh-et (lehet ugyanaz a példány vagy egy új).
triangulate(): MeshImageRenderOptions
Mesh
A triangulált 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()
Visszaadja a hálót, mint egy Mesh példány. A Mesh objektumok esetén ez egy identitás művelet; a metódus jelentősebb azoknál az egyszerű geometriai típusoknál, amelyek öröklik a Geometry.
toMesh(): MeshImageRenderOptions
Mesh
Ez a háló példány.
static union(a, b)
NOT IMPLEMENTED. Ez a metódus definiálva van az API felületén, de dob Error('union is not implemented') futásidőben. Ne hívd meg termelési kódban.
Két háló Boolean unióját hajtja végre. Az eredmény tartalmazza mindkét bemenet kombinált térfogatát.
static union(a: Mesh, b: Mesh): MeshImageRenderOptions
a Mesh
Az első háló operandus.
b Mesh
A második háló operandus.
ImageRenderOptions
Mesh
Egy új háló, amely a a és 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. Ez a metódus definiálva van az API felületén, de dob Error('difference is not implemented') futásidőben. Ne hívd meg termelési kódban.
Boolean különbséget hajt végre, kivonva a(z) háló térfogatát b a(z) hálóból a.
static difference(a: Mesh, b: Mesh): MeshImageRenderOptions
a Mesh
Az alap háló.
b Mesh
A háló, amelyből kivonni a.
ImageRenderOptions
Mesh
Egy új háló, amely ábrázolja a mínusz 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. Ez a metódus definiálva van az API felületén, de dob Error('intersect is not implemented') futásidőben. Ne hívd meg termelési kódban.
Két háló Boolean metszetét hajtja végre. Az eredmény csak a átfedő térfogatot tartalmazza.
static intersect(a: Mesh, b: Mesh): MeshImageRenderOptions
a Mesh
Az első háló operandus.
b Mesh
A második háló operandus.
ImageRenderOptions
Mesh
Új háló, amely a metszetet ábrázolja a és 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?)
Létrehoz egy új VertexElement adatréteget ezen a hálón egyedi csúcsra vonatkozó attribútumokhoz.
createElement(
type: VertexElementType,
mapping?: MappingMode,
reference?: ReferenceMode
): VertexElementImageRenderOptions
type VertexElementType
A létrehozandó csúcsattribútum típusa (például, VertexElementType.Normal).
mapping MappingMode (opcionális)
Hogyan van leképezve az elemadat a háló topológiájára. Alapértelmezett: MappingMode.ControlPoint.
reference ReferenceMode (opcionális)
Hogyan hivatkoznak az elemindexek az adat tömbre. Alapértelmezett: ReferenceMode.Direct.
ImageRenderOptions
VertexElement
Az újonnan létrehozott csúcspont elem réteg.
createElementUV(mapping, mappingMode?, referenceMode?)
Létrehoz egy UV koordináta réteget ezen a hálón.
createElementUV(
mapping: TextureMapping,
mappingMode?: MappingMode,
referenceMode?: ReferenceMode
): VertexElementUVImageRenderOptions
mapping TextureMapping
A létrehozandó UV csatorna (például, TextureMapping.Diffuse).
mappingMode MappingMode (opcionális)
Hogyan vannak leképezve az UV koordináták a csúcspontokra.
referenceMode ReferenceMode (opcionális)
Hogyan hivatkozik az UV index adat az UV tömbre.
ImageRenderOptions
VertexElementUV
Az újonnan létrehozott UV elem réteg.
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}`);