Class Mesh

Pakke: @aspose/3d (v24.12.0)

Mesh er også tilgjengelig via sub‑sti‑import @aspose/3d/entities.

Mesh er den primære polygongeometri‑enheten i @aspose/3d. Den lagrer vertex‑posisjoner som kontrollpunkter, definerer polygon‑flater ved hjelp av lister med vertex‑indekser, og støtter flere lag med vertex‑elementdata som normaler og UV‑koordinater.

export class Mesh extends Geometry

ImageRenderOptions

A3DObject ← SceneObject ← Entity ← Geometry ← Mesh

ImageRenderOptions

Bygg et enkelt trekantmesh, fest det til scenen, og lagre til 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[]Vertex‑posisjonene til mesh‑en. Hvert punkt bruker homogene koordinater (x, y, z, w). Legg til punkter ved å skyve dem inn i denne matrisen før du definerer polygoner.
polygonCountnumberKun‑les. Antall polygoner (flater) som for øyeblikket er definert på mesh‑en.
polygonsnumber[][]Kun‑les. Polygon‑indextabellen. Hver oppføring er en matrise med kontrollpunkt‑indekser som definerer én flate.
edgesnumber[]Kantlisten, brukt for hard‑edge‑merking og brett‑vektning.
vertexElementsVertexElement[]Samlingen av vertex‑elementlag (normaler, UV‑er, vertex‑farger osv.) som er knyttet til denne mesh‑en.
visiblebooleanOm mesh‑en blir rendret. Standard er true.
castShadowsbooleanOm mesh‑en kaster skygger i støttede renderere. Standard er true.
receiveShadowsbooleanOm mesh‑en mottar skygger fra andre objekter. Standard er true.

ImageRenderOptions

createPolygon(…indices)

Definerer en ny polygonflate ved å bruke de oppgitte kontrollpunkt‑indeksene. Indeksene må referere til gyldige posisjoner i controlPoints.

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

ImageRenderOptions

...indices number[]

Tre eller flere nullbaserte indekser inn i controlPoints array, i mot‑klokkevis viklingsrekkefølge.

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()

Konverterer alle ikke‑trekantede polygoner i dette mesh-et til trekanter. Returnerer det triangulerte mesh-et (kan være samme forekomst eller en ny).

triangulate(): Mesh

ImageRenderOptions

Mesh

Det triangulerte mesh-et.

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()

Returnerer mesh som en Mesh instans. For Mesh objekter er dette en identitetsoperasjon; metoden er mer meningsfull på primitive geometrityper som arver fra Geometry.

toMesh(): Mesh

ImageRenderOptions

Mesh

Dette mesh‑instansen.


static union(a, b)

NOT IMPLEMENTED. Denne metoden er definert i API‑overflaten, men kaster Error('union is not implemented') ved kjøretid. Ikke kall den i produksjonskode.

Utfører en boolsk union av to mesh‑objekter. Resultatet inneholder det kombinerte volumet av begge inngangene.

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

ImageRenderOptions

a Mesh

Den første mesh‑operanden.

b Mesh

Den andre mesh‑operanden.

ImageRenderOptions

Mesh

Et nytt nett som representerer unionen av a og 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. Denne metoden er definert i API‑overflaten, men kaster Error('difference is not implemented') ved kjøretid. Ikke kall den i produksjonskode.

Utfører en boolsk differens, trekker fra volumet av nettet b fra nettet a.

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

ImageRenderOptions

a Mesh

Base‑mesh‑en.

b Mesh

Nettet som skal trekkes fra a.

ImageRenderOptions

Mesh

Et nytt nett som representerer a minus 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. Denne metoden er definert i API‑overflaten, men kaster Error('intersect is not implemented') ved kjøretid. Ikke kall den i produksjonskode.

Utfører en boolsk skjæring av to mesh. Resultatet inneholder kun det overlappende volumet.

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

ImageRenderOptions

a Mesh

Den første mesh‑operanden.

b Mesh

Den andre mesh‑operanden.

ImageRenderOptions

Mesh

Et nytt mesh som representerer skjæringspunktet mellom a og 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?)

Oppretter en ny VertexElement datalag på dette mesh-et for egendefinerte per-vertex-attributter.

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

ImageRenderOptions

type VertexElementType

Typen vertex-attributt som skal opprettes (for eksempel, VertexElementType.Normal).

mapping MappingMode (valgfritt)

Hvordan elementdataene er kartlagt til mesh-topologien. Standard er MappingMode.ControlPoint.

reference ReferenceMode (valgfritt)

Hvordan elementindeksene refererer til dataarrayet. Standard er ReferenceMode.Direct.

ImageRenderOptions

VertexElement

Det nyopprettede vertex-elementlaget.


createElementUV(mapping, mappingMode?, referenceMode?)

Oppretter et UV-koordinatlag på dette mesh-et.

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

ImageRenderOptions

mapping TextureMapping

UV-kanalen som skal opprettes (for eksempel, TextureMapping.Diffuse).

mappingMode MappingMode (valgfritt)

Hvordan UV-koordinater kartlegges til vertexer.

referenceMode ReferenceMode (valgfritt)

Hvordan UV-indeksdata refererer til UV-arrayet.

ImageRenderOptions

VertexElementUV

Det nyopprettede UV‑elementlaget.

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}`);
 Norsk