VertexElement — Aspose.3D TypeScript API Reference

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

VertexElement ir abstrakta pamata klase per-virsotnes atribūtu kanāliem, kas pievienoti Geometry. Katrs kanāls satur tipizētu datu masīvu un mappingMode / referenceMode metadatus, kas kontrolē, kā dati attiecas uz ģeometrijas primitīviem. Apakšklases ir: VertexElementNormal, VertexElementUV, un VertexElementVertexColor.

import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';

ImageRenderOptions

export abstract class VertexElement implements IIndexedVertexElement

ImageRenderOptions

constructor(
  elementType: VertexElementType,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

ImageRenderOptions mappingMode ir MappingMode.CONTROL_POINT; noklusējums referenceMode ir ReferenceMode.DIRECT.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
vertexElementTypeVertexElementTypelasītSemantiskais tips šim slānim.
namestringlasīt/rakstītPēc izvēles etiķete šim slānim.
mappingModeMappingModelasīt/rakstītKontrolē, ar kuru ģeometrijas primitīvu ir saistīta katra vērtība.
referenceModeReferenceModelasīt/rakstītKontrolē, vai vērtības tiek adresētas tieši vai caur indeksa masīvu.
indicesnumber[]lasītIndeksa masīvs priekš IndexToDirect atsauces režīms.

ImageRenderOptions

setIndices(data)

NOT IMPLEMENTED. Uz bāzes VertexElement klase, šī metode izsauc Error('set_indices is not implemented') izpildes laikā. Apakšklases VertexElementFVector un VertexElementIntsTemplate nodrošiniet darbojošas implementācijas.

Aizstājiet indeksa masīvu.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. Uz bāzes VertexElement klase, šī metode izsauc Error('clear is not implemented') izpildes laikā. Apakšklases VertexElementFVector un VertexElementIntsTemplate sniedziet funkcionālas implementācijas.

Noņemiet visus datus un indeksus no slāņa.

clear(): void

VertexElementNormal

Saglabā virsmas normālu vektorus. Normālu dati ir nepieciešami vairumam renderētāju, lai nodrošinātu pareizu apgaismojumu.

export class VertexElementNormal extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementNormal

ImageRenderOptions

new VertexElementNormal(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType ir fiksēts uz VertexElementType.NORMAL.


VertexElementUV

Saglabā 2D tekstūras koordinātas. Tīkls var saturēt vairākus UV slāņus dažādiem tekstūras kanāliem. Šis textureMapping īpašība identificē kanāla mērķi.

export class VertexElementUV extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementUV

ImageRenderOptions

new VertexElementUV(
  textureMapping: TextureMapping | null = null,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

Noklusētais ir TextureMapping.DIFFUSE kad textureMapping ir null.

Papildu īpašība

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
textureMappingTextureMappinglasītTekstūras kanāls, ar ko šis UV slānis ir saistīts.
dataFVector4[]lasītUV vērtības atklātas kā FVector4 ieraksti (z un w ir 0).
uvDataFVector2[]lasāmiUV vērtības kā FVector2 ieraksti (tikai x, y).

addData(data)

Pievieno UV vērtības. Pieņem FVector2[], FVector3[], vai FVector4[].

addData(data: FVector2[] | FVector3[] | FVector4[]): void

VertexElementVertexColor

Saglabā RGBA krāsu vērtības katram virsotnei. Komponentes ir diapazonā 0–1.

export class VertexElementVertexColor extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ImageRenderOptions

new VertexElementVertexColor(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType ir fiksēts uz VertexElementType.VERTEX_COLOR.


ImageRenderOptions

Pievienot normāles trīsstūra režģim:

import { Scene, Mesh, Vector4, VertexElementType, MappingMode, ReferenceMode, FVector4 } from '@aspose/3d';

const mesh = new Mesh();
mesh.controlPoints.push(new Vector4(0, 0, 0, 1));
mesh.controlPoints.push(new Vector4(1, 0, 0, 1));
mesh.controlPoints.push(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);

const normals = mesh.createElement(
  VertexElementType.NORMAL,
  MappingMode.CONTROL_POINT,
  ReferenceMode.DIRECT,
);
normals.setData([
  new FVector4(0, 0, 1, 0),
  new FVector4(0, 0, 1, 0),
  new FVector4(0, 0, 1, 0),
]);

const scene = new Scene();
scene.rootNode.createChildNode('tri', mesh);
scene.save('triangle_normals.glb');

Pievienot UV koordinātas:

import { Scene, Mesh, Vector4, TextureMapping, MappingMode, ReferenceMode, FVector2 } from '@aspose/3d';

const mesh = new Mesh();
for (const [x, z] of [[0,0],[1,0],[1,1],[0,1]]) {
  mesh.controlPoints.push(new Vector4(x, 0, z, 1));
}
mesh.createPolygon(0, 1, 2, 3);

const uv = mesh.createElementUV(TextureMapping.DIFFUSE, MappingMode.CONTROL_POINT, ReferenceMode.DIRECT);
uv.addData([
  new FVector2(0, 0),
  new FVector2(1, 0),
  new FVector2(1, 1),
  new FVector2(0, 1),
]);

const scene = new Scene();
scene.rootNode.createChildNode('quad', mesh);
scene.save('quad_uv.glb');

Skatīt arī

 Latviešu