VertexElement Formål.Aspose.3D TypeScript API-reference

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

VertexElement er den abstrakte basisklasse for per-vertex attributkanaler, der er knyttet til en Geometry.Hver kanal indeholder et indskrevet datamarked og en mappingMode / referenceMode Metadata, der styrer hvordan dataene er relateret til geometrisk primitiv. Underklasserne er: VertexElementNormal, VertexElementUV, og VertexElementVertexColor.

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

VertexElement (abstrakt basis)

export abstract class VertexElement implements IIndexedVertexElement

Konstruktor

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

Standardindstilling mappingMode er: MappingMode.CONTROL_POINT; standard referenceMode er: ReferenceMode.DIRECT.

Egenskaber

EjendommeType:Tilgang tilBeskrivelse:
vertexElementTypeVertexElementTypeLæs det.Semantisk type af dette lag.
namestringLæse/skriveValgfrit etiket for dette lag.
mappingModeMappingModeLæse/skriveKontroller, hvilken geometrisk primitiv hver værdi er forbundet med.
referenceModeReferenceModeLæse/skriveStyrker, om værdier adresseres direkte eller gennem et indeksarray.
indicesnumber[]Læs det.Indeks-array for IndexToDirect referencetilstand.

Metoder til at anvende

setIndices(data)

NOT IMPLEMENTED. På basen. VertexElement Denne metode kaster Error('set_indices is not implemented') underklasserne. VertexElementFVector og: VertexElementIntsTemplate yde praktiske implementeringer.

Udskift indeksarray.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. På basen. VertexElement Denne metode kaster Error('clear is not implemented') underklasserne. VertexElementFVector og: VertexElementIntsTemplate yde praktiske implementeringer.

Fjern alle data og indeks fra laget.

clear(): void

VertexElementNormal

De fleste renderere kræver normale data for korrekt belysning.

export class VertexElementNormal extends VertexElementFVector

Arvelige forhold

VertexElementVertexElementFVectorVertexElementNormal

Konstruktor

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

vertexElementType er fastgjort til: VertexElementType.NORMAL.


VertexElementUV

En mask kan bære flere UV-lag for forskellige teksturkanaler. textureMapping ejendommen identificerer kanalens formål.

export class VertexElementUV extends VertexElementFVector

Arvelige forhold

VertexElementVertexElementFVectorVertexElementUV

Konstruktor

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

Forfald i forbindelse med: TextureMapping.DIFFUSE Hvornår? textureMapping er: null.

Yderligere ejendom

EjendommeType:Tilgang tilBeskrivelse:
textureMappingTextureMappingLæs det.Den teksturkanal, som UV-laget er forbundet med.
dataFVector4[]Læs det.UV-værdier, der udsættes som: FVector4 Indsætninger (z og w er 0).
uvDataFVector2[]Læs det.UV-værdier som: FVector2 poster (kun x, y).

addData(data)

Vedhæft UV-værdier. FVector2[], FVector3[],eller: FVector4[].

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

VertexElementVertexColor

Lagrer farveværdier pr. vertikal RGBA-vertex, komponenterne er i intervallet 01.

export class VertexElementVertexColor extends VertexElementFVector

Arvelige forhold

VertexElementVertexElementFVectorVertexElementVertexColor

Konstruktor

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

vertexElementType er fastgjort til: VertexElementType.VERTEX_COLOR.


Eksempler

Tilføj normaler til et trekantnet:

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