VertexElement — Aspose.3D TypeScript API Reference
Balík: @aspose/3d (v24.12.0)
VertexElement je abstraktná základná trieda pre kanály atribútov na vrchole pripojené k Geometry.Každý kanál obsahuje typované pole dát a mappingMode / referenceMode metadáta, ktoré riadia, ako sa dáta vzťahujú k geometrickým primitívam. Podtriedy sú: VertexElementNormal, VertexElementUV, a VertexElementVertexColor.
import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';ImageRenderOptions
export abstract class VertexElement implements IIndexedVertexElementImageRenderOptions
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)ImageRenderOptions mappingMode je MappingMode.CONTROL_POINT; predvolené referenceMode je ReferenceMode.DIRECT.
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | čítanie | Sémantický typ tejto vrstvy. |
name | string | čítanie/zápis | Voliteľný popisok pre túto vrstvu. |
mappingMode | MappingMode | čítanie/zápis | Riadi, s ktorým geometrickým primitívom je každá hodnota spojená. |
referenceMode | ReferenceMode | čítanie/zápis | Ovláda, či sú hodnoty adresované priamo alebo prostredníctvom indexového poľa. |
indices | number[] | čítanie | Indexové pole pre IndexToDirect referenčný režim. |
ImageRenderOptions
setIndices(data)
NOT IMPLEMENTED. V základnej VertexElement triede, táto metóda vyhadzuje Error('set_indices is not implemented') v čase behu. Podtriedy VertexElementFVector a VertexElementIntsTemplate poskytujú funkčné implementácie.
Nahradiť pole indexov.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. V základnej VertexElement triede, táto metóda vyhadzuje Error('clear is not implemented') v čase behu. Podtriedy VertexElementFVector a VertexElementIntsTemplate poskytujú funkčné implementácie.
Odstrániť všetky dáta a indexy z vrstvy.
clear(): voidVertexElementNormal
Ukladá vektory povrchových normálov. Dáta o normálach sú vyžadované väčšinou renderovacích motorov pre správne osvetlenie.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
ImageRenderOptions
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType je nastavené na VertexElementType.NORMAL.
VertexElementUV
Ukladá 2D textúrové súradnice. Mriežka môže obsahovať viacero UV vrstiev pre rôzne textúrové kanály. Tá textureMapping vlastnosť určuje účel kanála.
export class VertexElementUV extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementUV
ImageRenderOptions
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Predvolené je TextureMapping.DIFFUSE keď textureMapping je null.
Dodatočná vlastnosť
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | čítanie | Kanál textúry, s ktorým je táto UV vrstva spojená. |
data | FVector4[] | čítanie | UV hodnoty vystavené ako FVector4 záznamy (z a w sú 0). |
uvData | FVector2[] | čítané | UV hodnoty ako FVector2 záznamy (iba x, y). |
addData(data)
Pridať UV hodnoty. Prijíma FVector2[], FVector3[], alebo FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Ukladá hodnoty farby RGBA pre každý vrchol. Zložky sú v rozsahu 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ImageRenderOptions
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType je nastavené na VertexElementType.VERTEX_COLOR.
ImageRenderOptions
Pridať normály do trojuholníkovej siete:
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');Pridať UV súradnice:
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');