VertexElement — Aspose.3D TypeScript API Reference
Pakket: @aspose/3d (v24.12.0)
VertexElement is de abstracte basisklasse voor per-vertex attribuutchannels die zijn gekoppeld aan een Geometry. Elk kanaal bevat een getypeerde gegevensarray en mappingMode / referenceMode metadata die bepalen hoe de gegevens zich verhouden tot geometrische primitieve. De subklassen zijn: VertexElementNormal, VertexElementUV, en 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 is MappingMode.CONTROL_POINT; standaard referenceMode is ReferenceMode.DIRECT.
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | lezen | Semantisch type van deze laag. |
name | string | lezen/schrijven | Optioneel label voor deze laag. |
mappingMode | MappingMode | lezen/schrijven | Bepaalt met welke geometrische primitive elke waarde is geassocieerd. |
referenceMode | ReferenceMode | lezen/schrijven | Bepaalt of waarden direct of via een indexarray worden benaderd. |
indices | number[] | lezen | Indexarray voor IndexToDirect referentiemodus. |
ImageRenderOptions
setIndices(data)
NOT IMPLEMENTED. Op de basis VertexElement klasse, deze methode gooit Error('set_indices is not implemented') tijdens runtime. De subklassen VertexElementFVector en VertexElementIntsTemplate leveren werkende implementaties.
Vervang de indexarray.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Op de basis VertexElement klasse, deze methode gooit Error('clear is not implemented') tijdens runtime. De subklassen VertexElementFVector en VertexElementIntsTemplate leveren werkende implementaties.
Verwijder alle data en indexen van de laag.
clear(): voidVertexElementNormal
Slaat oppervlaktennormaalvectoren op. Normale data is vereist door de meeste renderers voor correcte belichting.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
ImageRenderOptions
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType is vastgezet op VertexElementType.NORMAL.
VertexElementUV
Slaat 2D textuurcoördinaten op. Een mesh kan meerdere UV-lagen bevatten voor verschillende textuurkanalen. De textureMapping eigenschap identificeert het doel van het kanaal.
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,
)Standaard is TextureMapping.DIFFUSE wanneer textureMapping is null.
Aanvullende eigenschap
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | lezen | Het textuurkanaal waaraan deze UV-laag is gekoppeld. |
data | FVector4[] | lezen | UV-waarden weergegeven als FVector4 items (z en w zijn 0). |
uvData | FVector2[] | gelezen | UV-waarden als FVector2 items (alleen x, y). |
addData(data)
Voeg UV-waarden toe. Accepteert FVector2[], FVector3[], of FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Slaat per-vertex RGBA-kleurwaarden op. Componenten liggen in het bereik 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ImageRenderOptions
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType is vastgezet op VertexElementType.VERTEX_COLOR.
ImageRenderOptions
Voeg normalen toe aan een driehoekmesh:
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');Voeg UV-coördinaten toe:
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');