VertexElement — Aspose.3D TypeScript API Reference

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

VertexElement er den abstrakte grundklasse for per-vertex attributkanaler, der er knyttet til en Geometry. Hver kanal indeholder et typet dataarray og mappingMode / referenceMode metadata, der styrer hvordan dataene relaterer til geometriprimitiver. Subklasserne er: VertexElementNormal, VertexElementUV, og VertexElementVertexColor.

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

Properties

export abstract class VertexElement implements IIndexedVertexElement

Properties

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

Properties mappingMode er MappingMode.CONTROL_POINT; standard referenceMode er ReferenceMode.DIRECT.

Properties

PropertiesPropertiesPropertiesProperties
vertexElementTypeVertexElementTypelæseSemantisk type for dette lag.
namestringlæse/skriveValgfri etiket for dette lag.
mappingModeMappingModelæse/skriveStyrer hvilket geometriprimitiv hver værdi er knyttet til.
referenceModeReferenceModelæse/skriveStyrer om værdier adresseres direkte eller gennem et indeksarray.
indicesnumber[]læseIndeksarray for IndexToDirect reference-tilstand.

Properties

setIndices(data)

NOT IMPLEMENTED. På basis VertexElement klasse, kaster denne metode Error('set_indices is not implemented') ved kørsel. Subklasserne VertexElementFVector og VertexElementIntsTemplate leverer fungerende implementeringer.

Erstat indeksarrayet.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. På basis VertexElement klasse, kaster denne metode Error('clear is not implemented') ved kørsel. Subklasserne VertexElementFVector og VertexElementIntsTemplate leverer fungerende implementeringer.

Fjern alle data og indekser fra laget.

clear(): void

VertexElementNormal

Gemmer overflade normalvektorer. Normaldata er påkrævet af de fleste renderere for korrekt belysning.

export class VertexElementNormal extends VertexElementFVector

Properties

VertexElementVertexElementFVectorVertexElementNormal

Properties

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

vertexElementType er fastsat til VertexElementType.NORMAL.


Returnerer: VertexElementUV

Gemmer 2D-teksturkoordinater. Et mesh kan indeholde flere UV-lag for forskellige teksturkanaler. Den textureMapping egenskab identificerer kanalens formål.

export class VertexElementUV extends VertexElementFVector

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

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

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

Yderligere egenskab

PropertiesPropertiesPropertiesProperties
textureMappingTextureMappinglæsesDen teksturkanal, som dette UV-lag er tilknyttet.
dataFVector4[]læsesUV-værdier eksponeret som FVector4 indgange (z og w er 0).
uvDataFVector2[]læsesUV-værdier som FVector2 indgange (kun x, y).

addData(data)

Tilføj UV-værdier. Accepterer FVector2[], FVector3[], eller FVector4[].

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

VertexElementVertexColor

Gemmer RGBA-farveværdier pr. vertex. Komponenterne er i intervallet 0–1.

export class VertexElementVertexColor extends VertexElementFVector

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

Properties

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

vertexElementType er fastsat til VertexElementType.VERTEX_COLOR.


Properties

Tilføj normaler til et trekantsmesh:

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

Tilføj 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å

 Dansk