VertexElement — Aspose.3D TypeScript API Reference

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

VertexElement yra abstrakti bazinė klasė, skirta viršūnės atributų kanalams, prijungtiems prie Geometry. Kiekvienas kanalas saugo tipizuotą duomenų masyvą ir mappingMode / referenceMode metaduomenis, kurie kontroliuoja, kaip duomenys susiję su geometriniais primityvais. Potomių klasės yra: VertexElementNormal, VertexElementUV, ir 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 yra MappingMode.CONTROL_POINT; numatytasis referenceMode yra ReferenceMode.DIRECT.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
vertexElementTypeVertexElementTypeskaitytiSemantinis šio sluoksnio tipas.
namestringskaityti/rašytiNebūtinas šio sluoksnio etiketė.
mappingModeMappingModeskaityti/rašytiValdo, su kuriuo geometriniu primityvu susijusi kiekviena reikšmė.
referenceModeReferenceModeskaityti/rašytiValdo, ar reikšmės yra adresuojamos tiesiogiai, ar per indekso masyvą.
indicesnumber[]skaitytiIndekso masyvas, skirtas IndexToDirect nuorodos režimas.

ImageRenderOptions

setIndices(data)

NOT IMPLEMENTED. Ant bazės VertexElement klasėje, šis metodas meta Error('set_indices is not implemented') vykdymo metu. Subklasės VertexElementFVector ir VertexElementIntsTemplate pateikia veikiančius įgyvendinimus.

Pakeiskite indekso masyvą.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. Ant bazės VertexElement klasėje, šis metodas meta Error('clear is not implemented') vykdymo metu. Subklasės VertexElementFVector ir VertexElementIntsTemplate pateikia veikiančius įgyvendinimus.

Pašalinkite visus duomenis ir indeksus iš sluoksnio.

clear(): void

VertexElementNormal

Saugo paviršiaus normalų vektorius. Normalų duomenys yra būtini daugumai rendererių teisingam apšvietimui.

export class VertexElementNormal extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementNormal

ImageRenderOptions

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

vertexElementType yra nustatyta į VertexElementType.NORMAL.


VertexElementUV

Saugo 2D tekstūros koordinates. Tinklas gali turėti kelis UV sluoksnius skirtingiems tekstūros kanalams. Šis textureMapping savybė nurodo kanalo paskirtį.

export class VertexElementUV extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementUV

ImageRenderOptions

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

Numatyta TextureMapping.DIFFUSE kai textureMapping yra null.

Papildoma savybė

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
textureMappingTextureMappingskaitytiTekstūros kanalas, su kuriuo susijęs šis UV sluoksnis.
dataFVector4[]skaitytiUV reikšmės pateiktos kaip FVector4 įrašai (z ir w yra 0).
uvDataFVector2[]skaitytiUV reikšmės kaip FVector2 įrašai (tik x, y).

addData(data)

Pridėti UV reikšmes. Priima FVector2[], FVector3[], arba FVector4[].

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

VertexElementVertexColor

Saugo RGBA spalvų reikšmes kiekvienam viršūnių taškui. Komponentės yra intervale 0–1.

export class VertexElementVertexColor extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ImageRenderOptions

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

vertexElementType yra nustatyta į VertexElementType.VERTEX_COLOR.


ImageRenderOptions

Pridėti normalės į trikampinį tinklą:

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');

Pridėti UV koordinates:

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');

Žr. taip pat

 Lietuvių