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 IIndexedVertexElementImageRenderOptions
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | les | Semantisk type for dette laget. |
name | string | les/skriv | Valgfri etikett for dette laget. |
mappingMode | MappingMode | les/skriv | Styrer hvilken geometriprimitt hver verdi er knyttet til. |
referenceMode | ReferenceMode | lese/skrive | Styrer om verdier adresseres direkte eller gjennom en indeksarray. |
indices | number[] | lese | Indeksarray 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[]): voidclear()
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(): voidVertexElementNormal
Lagrer overflate normalvektorer. Normaldata er påkrevd av de fleste renderere for korrekt belysning.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementUV
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | les | Teksturkanalen som dette UV-laget er assosiert med. |
data | FVector4[] | les | UV-verdier eksponert som FVector4 oppføringer (z og w er 0). |
uvData | FVector2[] | lest | UV-verdier som FVector2 oppføringer (kun x, y). |
addData(data)
Legg til UV-verdier. Aksepterer FVector2[], FVector3[], eller FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Lagrer RGBA‑fargeverdier per vertex. Komponentene er i området 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
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');