VertexElement — Aspose.3D TypeScript API Reference

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

VertexElement er den abstrakte basisklassen for per-vertex attributtkanaler festet til en Geometry. Hver kanal inneholder et typet dataarray og mappingMode / referenceMode metadata som styrer hvordan dataene relaterer seg til geometriprimitter. Subklassene er: VertexElementNormal, VertexElementUV, og 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 er MappingMode.CONTROL_POINT; standard referenceMode er ReferenceMode.DIRECT.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
vertexElementTypeVertexElementTypelesSemantisk type for dette laget.
namestringles/skrivValgfri etikett for dette laget.
mappingModeMappingModeles/skrivStyrer hvilken geometriprimitt hver verdi er knyttet til.
referenceModeReferenceModelese/skriveStyrer om verdier adresseres direkte eller gjennom en indeksarray.
indicesnumber[]leseIndeksarray for IndexToDirect referansemodus.

ImageRenderOptions

setIndices(data)

NOT IMPLEMENTED. På basen VertexElement klassen, kaster denne metoden Error('set_indices is not implemented') ved kjøring. Subklassene VertexElementFVector og VertexElementIntsTemplate gir fungerende implementasjoner.

Erstatt indeksarrayet.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. På basen VertexElement klassen, kaster denne metoden Error('clear is not implemented') ved kjøring. Subklassene VertexElementFVector og VertexElementIntsTemplate gir fungerende implementasjoner.

Fjern all data og indekser fra laget.

clear(): void

VertexElementNormal

Lagrer overflate normalvektorer. Normaldata er påkrevd av de fleste renderere for korrekt belysning.

export class VertexElementNormal extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementNormal

ImageRenderOptions

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

vertexElementType er fastsatt til VertexElementType.NORMAL.


VertexElementUV

Lagrer 2D-teksturkoordinater. Et mesh kan ha flere UV-lag for ulike teksturkanaler. Den textureMapping egenskapen identifiserer kanalens formål.

export class VertexElementUV extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementUV

ImageRenderOptions

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

Standardverdien er TextureMapping.DIFFUSE når textureMapping er null.

Ekstra egenskap

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
textureMappingTextureMappinglesTeksturkanalen som dette UV-laget er assosiert med.
dataFVector4[]lesUV-verdier eksponert som FVector4 oppføringer (z og w er 0).
uvDataFVector2[]lestUV-verdier som FVector2 oppføringer (kun x, y).

addData(data)

Legg til UV-verdier. Aksepterer FVector2[], FVector3[], eller FVector4[].

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

VertexElementVertexColor

Lagrer RGBA‑fargeverdier per vertex. Komponentene er i området 0–1.

export class VertexElementVertexColor extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ImageRenderOptions

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

vertexElementType er fast til VertexElementType.VERTEX_COLOR.


ImageRenderOptions

Legg til normaler i et trekantnett:

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

Legg til UV‑koordinater:

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

Se også

 Norsk