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 GeometryImageRenderOptions
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
controlPoints | Vector4[] | 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. |
polygonCount | number | Tikai lasāms. Šobrīd uz mesh definēto daudzstūru (seju) skaits. |
polygons | number[][] | Tikai lasāms. Daudzstūru indeksa tabula. Katrs ieraksts ir masīvs ar vadības punktu indeksiem, kas definē vienu seju. |
edges | number[] | Malu saraksts, ko izmanto cietu malu marķēšanai un saliekuma svarēšanai. |
vertexElements | VertexElement[] | Virsotņu elementu slāņu kolekcija (normāles, UV, virsotņu krāsas utt.), kas pievienota šim mesh. |
visible | boolean | Vai mesh tiek renderēts. Noklusējuma vērtība ir true. |
castShadows | boolean | Vai mesh met ēnas atbalstītajos renderētājos. Noklusējuma vērtība ir true. |
receiveShadows | boolean | Vai 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[]): voidImageRenderOptions
...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(): MeshImageRenderOptions
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(): MeshImageRenderOptions
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): MeshImageRenderOptions
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): MeshImageRenderOptions
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): MeshImageRenderOptions
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
): VertexElementImageRenderOptions
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
): VertexElementUVImageRenderOptions
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}`);