Class Mesh

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

Mesh ir arī pieejama, izmantojot apakšceļa importu @aspose/3d/entities.

Mesh ir galvenais daudzstūru ģeometrijas vienība @aspose/3d.Tas saglabā virsotņu pozīcijas kā vadības punktus, definē daudzstūru sejas ar virsotņu indeksa sarakstiem un atbalsta vairākus virsotņu elementu datu slāņus, piemēram, normāles un UV koordinātas.

export class Mesh extends Geometry

ImageRenderOptions

A3DObject ← SceneObject ← Entity ← Geometry ← Mesh

ImageRenderOptions

Izveidojiet vienu trīsstūra režģi, pievienojiet to ainavai un saglabājiet kā 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 virsotņu pozīcijas. Katrs punkts izmanto homogēnas koordinātas (x, y, z, w). Pievienojiet punktus, pievienojot tos šai masīvam pirms daudzstūru definēšanas.
polygonCountnumberTikai lasāms. Šobrīd uz mesh definēto daudzstūru (seju) skaits.
polygonsnumber[][]Tikai lasāms. Daudzstūru indeksa tabula. Katrs ieraksts ir masīvs ar vadības punktu indeksiem, kas definē vienu seju.
edgesnumber[]Malu saraksts, ko izmanto cietu malu marķēšanai un saliekuma svarēšanai.
vertexElementsVertexElement[]Virsotņu elementu slāņu kolekcija (normāles, UV, virsotņu krāsas utt.), kas pievienota šim mesh.
visiblebooleanVai mesh tiek renderēts. Noklusējuma vērtība ir true.
castShadowsbooleanVai mesh met ēnas atbalstītajos renderētājos. Noklusējuma vērtība ir true.
receiveShadowsbooleanVai mesh saņem ēnas no citiem objektiem. Noklusējuma vērtība ir true.

ImageRenderOptions

createPolygon(…indices)

Definē jaunu daudzstūra seju, izmantojot norādītos vadības punktu indeksus. Indeksi jāatsauc uz derīgām pozīcijām in controlPoints.

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

ImageRenderOptions

...indices number[]

Trīs vai vairāk nulles bāzes indeksus uz controlPoints masīvu, pretēji pulksteņa rādītāja virzienam.

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

Pārvērš visus ne trīsstūru daudzstūrus šajā režģī par trīsstūriem. Atgriež trīsstūrveida režģi (var būt tas pats instances vai jauns).

triangulate(): Mesh

ImageRenderOptions

Mesh

Trīsstūrveida režģis.

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

Atgriež tīklu kā Mesh instance. Lai Mesh objects šī ir identitātes operācija; metode ir nozīmīgāka primitīvu ģeometrijas tipiem, kas manto no Geometry.

toMesh(): Mesh

ImageRenderOptions

Mesh

Šī Mesh instance.


static union(a, b)

NOT IMPLEMENTED. Šī metode ir definēta API virsmā, bet izsauc Error('union is not implemented') izpildes laikā. To nevajadzētu izsaukt ražošanas kodā.

Izpilda loģisko apvienojumu starp diviem Mesh objektiem. Rezultātā ir abu ievades elementu apvienotais tilpums.

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

ImageRenderOptions

a Mesh

Pirmais tīkla operands.

b Mesh

Otrais tīkla operands.

ImageRenderOptions

Mesh

Jauns mesh, kas attēlo apvienojumu no a un 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. Šī metode ir definēta API virsmā, bet izsauc Error('difference is not implemented') izpildes laikā. To nevajadzētu izsaukt ražošanas kodā.

Izpilda Boolea starpību, atņemot mesh tilpumu b no mesh a.

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

ImageRenderOptions

a Mesh

Bāzes Mesh.

b Mesh

Mesh, no kura atņemt a.

ImageRenderOptions

Mesh

Jauns mesh, kas attēlo a mīnus 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. Šī metode ir definēta API virsmā, bet izsauc Error('intersect is not implemented') izpildes laikā. To nevajadzētu izsaukt ražošanas kodā.

Izpilda divu tīklu Boolea krustojumu. Rezultātā ir tikai pārklājošais tilpums.

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

ImageRenderOptions

a Mesh

Pirmais tīkla operands.

b Mesh

Otrais tīkla operands.

ImageRenderOptions

Mesh

Jauns tīkls, kas pārstāv krustpunktu starp a un 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?)

Izveido jaunu VertexElement datu slāni šim tīklam pielāgotām virsotnes atribūtiem.

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

ImageRenderOptions

type VertexElementType

Virsotnes atribūta veids, ko izveidot (piemēram, VertexElementType.Normal).

mapping MappingMode (pēc izvēles)

Kā elementa dati tiek kartēti uz tīkla topoloģiju. Noklusējuma vērtība ir MappingMode.ControlPoint.

reference ReferenceMode (pēc izvēles)

Kā elementa indeksi atsaucas uz datu masīvu. Noklusējuma vērtība ir ReferenceMode.Direct.

ImageRenderOptions

VertexElement

Jaunizveidotais virsotnes elementa slānis.


createElementUV(mapping, mappingMode?, referenceMode?)

Izveido UV koordinātu slāni šajā režģī.

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

ImageRenderOptions

mapping TextureMapping

UV kanāls, ko izveidot (piemēram, TextureMapping.Diffuse).

mappingMode MappingMode (pēc izvēles)

Kā UV koordinātas tiek kartētas uz virsotnēm.

referenceMode ReferenceMode (pēc izvēles)

Kā UV indeksa dati atsaucas uz UV masīvu.

ImageRenderOptions

VertexElementUV

Jaunizveidotais UV elementa slānis.

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}`);
 Latviešu