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 IIndexedVertexElementKonstruktor
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
| Ejendomme | Type: | Tilgang til | Beskrivelse: |
|---|---|---|---|
vertexElementType | VertexElementType | Læs det. | Semantisk type af dette lag. |
name | string | Læse/skrive | Valgfrit etiket for dette lag. |
mappingMode | MappingMode | Læse/skrive | Kontroller, hvilken geometrisk primitiv hver værdi er forbundet med. |
referenceMode | ReferenceMode | Læse/skrive | Styrker, om værdier adresseres direkte eller gennem et indeksarray. |
indices | number[] | Læs det. | Indeks-array for IndexToDirect referencetilstand. |
Metoder til at anvende
setIndices(data)
NOT IMPLEMENTED. På basen.
VertexElementDenne metode kasterError('set_indices is not implemented')underklasserne.VertexElementFVectorog:VertexElementIntsTemplateyde praktiske implementeringer.
Udskift indeksarray.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. På basen.
VertexElementDenne metode kasterError('clear is not implemented')underklasserne.VertexElementFVectorog:VertexElementIntsTemplateyde praktiske implementeringer.
Fjern alle data og indeks fra laget.
clear(): voidVertexElementNormal
De fleste renderere kræver normale data for korrekt belysning.
export class VertexElementNormal extends VertexElementFVectorArvelige forhold
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementFVectorArvelige forhold
VertexElement → VertexElementFVector → VertexElementUV
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
| Ejendomme | Type: | Tilgang til | Beskrivelse: |
|---|---|---|---|
textureMapping | TextureMapping | Læs det. | Den teksturkanal, som UV-laget er forbundet med. |
data | FVector4[] | Læs det. | UV-værdier, der udsættes som: FVector4 Indsætninger (z og w er 0). |
uvData | FVector2[] | 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[]): voidVertexElementVertexColor
Lagrer farveværdier pr. vertikal RGBA-vertex, komponenterne er i intervallet 01.
export class VertexElementVertexColor extends VertexElementFVectorArvelige forhold
VertexElement → VertexElementFVector → VertexElementVertexColor
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');