Class Mesh

Balík: @aspose/3d (v24.12.0)

Mesh je tiež dostupný prostredníctvom importu podcesty @aspose/3d/entities.

Mesh je primárna entita polygonovej geometrie v @aspose/3d. Ukladá pozície vrcholov ako kontrolné body, definuje polygonové plochy pomocou zoznamov indexov vrcholov a podporuje viacero vrstiev dát elementov vrcholov, ako sú normály a UV súradnice.

export class Mesh extends Geometry

ImageRenderOptions

A3DObject ← SceneObject ← Entity ← Geometry ← Mesh

ImageRenderOptions

Vytvorte jedinečnú trojuholníkovú sieť, pripojte ju k scéne a uložte do formátu 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[]Pozície vrcholov siete. Každý bod používa homogénne súradnice (x, y, z, w). Pridajte body vložením do tohto poľa pred definovaním polygonov.
polygonCountnumberIba na čítanie. Počet polygonov (plôch) aktuálne definovaných v sieti.
polygonsnumber[][]Iba na čítanie. Tabuľka indexov polygonov. Každý záznam je pole indexov kontrolných bodov, ktoré definujú jednu plochu.
edgesnumber[]Zoznam hrán, používaný na označovanie tvrdých hrán a váženie záhybov.
vertexElementsVertexElement[]Zbierka vrstiev elementov vrcholov (normály, UV, farby vrcholov atď.) pripojených k tejto sieti.
visiblebooleanUrčuje, či je sieť vykreslená. Predvolená hodnota je true.
castShadowsbooleanUrčuje, či sieť vrhá tiene v podporovaných rendereroch. Predvolená hodnota je true.
receiveShadowsbooleanUrčuje, či sieť prijíma tiene od iných objektov. Predvolená hodnota je true.

ImageRenderOptions

createPolygon(…indices)

Definuje novú polygonovú plochu pomocou poskytnutých indexov kontrolných bodov. Indexy musia odkazovať na platné pozície v controlPoints.

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

ImageRenderOptions

...indices number[]

Tri alebo viac nulovo založených indexov do controlPoints pole, v smere proti smeru hodinových ručičiek.

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

Prevedie všetky ne-triangularne polygóny v tejto sieti na trojuholníky. Vráti triangulovanú sieť (môže to byť rovnaká inštancia alebo nová).

triangulate(): Mesh

ImageRenderOptions

Mesh

Triangulovaná sieť.

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

Vráti sieť ako Mesh inštancia. Pre Mesh objektov je to operácia identity; metóda má väčší zmysel pri primitívnych geometrických typoch, ktoré dedia od Geometry.

toMesh(): Mesh

ImageRenderOptions

Mesh

Táto inštancia mesh.


static union(a, b)

NOT IMPLEMENTED. Táto metóda je definovaná v rozhraní API, ale vyhadzuje Error('union is not implemented') v čase behu. Nepoužívajte ju v produkčnom kóde.

Vykoná Booleovú zjednotenie dvoch mesh-ov. Výsledok obsahuje kombinovaný objem oboch vstupov.

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

ImageRenderOptions

a Mesh

Prvý operand mriežky.

b Mesh

Druhý operand mriežky.

ImageRenderOptions

Mesh

Nový mesh predstavujúci zjednotenie a 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. Táto metóda je definovaná v rozhraní API, ale vyhadzuje Error('difference is not implemented') v čase behu. Nepoužívajte ju v produkčnom kóde.

Vykoná Booleovú rozdielovú operáciu, odčítajúc objem mesh b od mesh a.

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

ImageRenderOptions

a Mesh

Základný mesh.

b Mesh

Mesh, z ktorého sa odčítava a.

ImageRenderOptions

Mesh

Nový mesh predstavujúci 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. Táto metóda je definovaná v rozhraní API, ale vyhadzuje Error('intersect is not implemented') v čase behu. Nepoužívajte ju v produkčnom kóde.

Vykoná Booleovú prienik dvoch mriežok. Výsledok obsahuje iba prekrývajúci sa objem.

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

ImageRenderOptions

a Mesh

Prvý operand mriežky.

b Mesh

Druhý operand mriežky.

ImageRenderOptions

Mesh

Nová sieť predstavujúca prienik a 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?)

Vytvorí novú VertexElement dátovú vrstvu na tejto sieti pre vlastné atribúty na vrchole.

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

ImageRenderOptions

type VertexElementType

Typ atribútu vrchola, ktorý sa má vytvoriť (napríklad, VertexElementType.Normal).

mapping MappingMode (voliteľné)

Ako sú dáta prvku mapované na topológiu siete. Predvolene je MappingMode.ControlPoint.

reference ReferenceMode (voliteľné)

Ako indexy prvkov odkazujú na dátové pole. Predvolene je ReferenceMode.Direct.

ImageRenderOptions

VertexElement

Novovytvorená vrstva prvku vrchola.


createElementUV(mapping, mappingMode?, referenceMode?)

Vytvorí vrstvu UV súradníc na tejto sieti.

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

ImageRenderOptions

mapping TextureMapping

UV kanál, ktorý sa má vytvoriť (napríklad, TextureMapping.Diffuse).

mappingMode MappingMode (voliteľné)

Ako sa UV súradnice mapujú na vrcholy.

referenceMode ReferenceMode (voliteľné)

Ako UV indexové dáta odkazujú na UV pole.

ImageRenderOptions

VertexElementUV

Novovytvorená vrstva UV elementu.

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}`);
 Slovenčina