Class Mesh

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

Mesh je také k dispozici prostřednictvím importu podcesty @aspose/3d/entities.

Mesh je primární entita polygonové geometrie v @aspose/3d. Ukládá pozice vrcholů jako kontrolní body, definuje polygonové plochy pomocí seznamů indexů vrcholů a podporuje více vrstev dat elementů vrcholů, jako jsou normály a UV souřadnice.

export class Mesh extends Geometry

Properties

A3DObject ← SceneObject ← Entity ← Geometry ← Mesh

Properties

Vytvořte jednorázovou trojúhelníkovou síť, připojte ji k scéně 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

Properties

PropertiesPropertiesProperties
controlPointsVector4[]Pozice vrcholů sítě. Každý bod používá homogenní souřadnice (x, y, z, w). Přidejte body vložením do tohoto pole před definováním polygonů.
polygonCountnumberPouze pro čtení. Počet polygonů (ploch), které jsou v současnosti definovány v síti.
polygonsnumber[][]Pouze pro čtení. Tabulka indexů polygonů. Každý záznam je pole indexů kontrolních bodů, které definují jednu plochu.
edgesnumber[]Seznam hran, používaný pro označování tvrdých hran a vážení záhybů.
vertexElementsVertexElement[]Sbírka vrstev elementů vrcholů (normály, UV, barvy vrcholů atd.) připojených k této síti.
visiblebooleanZda je síť renderována. Výchozí hodnota je true.
castShadowsbooleanZda síť vrhá stíny v podporovaných rendererech. Výchozí hodnota je true.
receiveShadowsbooleanZda síť přijímá stíny od jiných objektů. Výchozí hodnota je true.

Properties

createPolygon(…indices)

Definuje novou polygonovou plochu pomocí poskytnutých indexů kontrolních bodů. Indexy musí odkazovat na platné pozice v controlPoints.

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

Properties

...indices number[]

Tři nebo více nulových indexů do controlPoints pole, v pořadí vinutí proti směru hodinových ručiček.

Properties

void

Properties

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řevede všechny ne‑trojúhelníkové polygony v této síti na trojúhelníky. Vrací triangulovanou síť (může být stejná instance nebo nová).

triangulate(): Mesh

Properties

Mesh

Triangulovaná síť.

Properties

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

Vrací síť jako a Mesh instance. Pro Mesh objekty je to operace identity; metoda má větší smysl u primitivních geometrických typů, které dědí z Geometry.

toMesh(): Mesh

Properties

Mesh

Tato instance sítě.


static union(a, b)

NOT IMPLEMENTED. Tato metoda je definována v rozhraní API, ale vyvolá Error('union is not implemented') během běhu. Nepoužívejte ji v produkčním kódu.

Provede Booleovskou unii dvou sítí. Výsledek obsahuje kombinovaný objem obou vstupů.

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

Properties

a Mesh

První operand síti.

b Mesh

Druhý operand síti.

Properties

Mesh

Nová mesh představující sjednocení a a b.

Properties

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. Tato metoda je definována v rozhraní API, ale vyvolá Error('difference is not implemented') během běhu. Nepoužívejte ji v produkčním kódu.

Provádí Booleovský rozdíl, odečítá objem mesh b z mesh a.

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

Properties

a Mesh

Základní síť.

b Mesh

Mesh, ze které se odečítá a.

Properties

Mesh

Nová mesh představující a mínus b.

Properties

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. Tato metoda je definována v rozhraní API, ale vyvolá Error('intersect is not implemented') během běhu. Nepoužívejte ji v produkčním kódu.

Provede Booleovskou průnik dvou sítí. Výsledek obsahuje pouze překrývající se objem.

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

Properties

a Mesh

První operand síti.

b Mesh

Druhý operand síti.

Properties

Mesh

Nová mesh představující průnik a a b.

Properties

import { Mesh } from '@aspose/3d/entities';

const overlap = Mesh.intersect(meshA, meshB);
console.log(`Intersection polygon count: ${overlap.polygonCount}`);

createElement(type, mapping?, reference?)

Vytvoří novou VertexElement datovou vrstvu na této mesh pro vlastní atributy na vrcholu.

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

Properties

type VertexElementType

Typ vrcholového atributu, který se má vytvořit (například, VertexElementType.Normal).

mapping MappingMode (volitelně)

Jak jsou data elementu mapována na topologii mesh. Výchozí hodnota je MappingMode.ControlPoint.

reference ReferenceMode (volitelně)

Jak indexy elementů odkazují na datové pole. Výchozí hodnota je ReferenceMode.Direct.

Properties

VertexElement

Nově vytvořená vrstva vrcholového elementu.


createElementUV(mapping, mappingMode?, referenceMode?)

Vytvoří vrstvu UV souřadnic na této síti.

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

Properties

mapping TextureMapping

UV kanál, který se má vytvořit (například, TextureMapping.Diffuse).

mappingMode MappingMode (volitelně)

Jak jsou UV souřadnice mapovány na vrcholy.

referenceMode ReferenceMode (volitelně)

Jak data indexu UV odkazují na UV pole.

Properties

VertexElementUV

Nově vytvořená vrstva UV elementu.

Properties

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}`);
 Čeština