VertexElement — Aspose.3D TypeScript API Reference
Paketas: @aspose/3d (v24.12.0)
VertexElement yra abstrakti bazinė klasė, skirta viršūnės atributų kanalams, prijungtiems prie Geometry. Kiekvienas kanalas saugo tipizuotą duomenų masyvą ir mappingMode / referenceMode metaduomenis, kurie kontroliuoja, kaip duomenys susiję su geometriniais primityvais. Potomių klasės yra: VertexElementNormal, VertexElementUV, ir 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 yra MappingMode.CONTROL_POINT; numatytasis referenceMode yra ReferenceMode.DIRECT.
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | skaityti | Semantinis šio sluoksnio tipas. |
name | string | skaityti/rašyti | Nebūtinas šio sluoksnio etiketė. |
mappingMode | MappingMode | skaityti/rašyti | Valdo, su kuriuo geometriniu primityvu susijusi kiekviena reikšmė. |
referenceMode | ReferenceMode | skaityti/rašyti | Valdo, ar reikšmės yra adresuojamos tiesiogiai, ar per indekso masyvą. |
indices | number[] | skaityti | Indekso masyvas, skirtas IndexToDirect nuorodos režimas. |
ImageRenderOptions
setIndices(data)
NOT IMPLEMENTED. Ant bazės VertexElement klasėje, šis metodas meta Error('set_indices is not implemented') vykdymo metu. Subklasės VertexElementFVector ir VertexElementIntsTemplate pateikia veikiančius įgyvendinimus.
Pakeiskite indekso masyvą.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Ant bazės VertexElement klasėje, šis metodas meta Error('clear is not implemented') vykdymo metu. Subklasės VertexElementFVector ir VertexElementIntsTemplate pateikia veikiančius įgyvendinimus.
Pašalinkite visus duomenis ir indeksus iš sluoksnio.
clear(): voidVertexElementNormal
Saugo paviršiaus normalų vektorius. Normalų duomenys yra būtini daugumai rendererių teisingam apšvietimui.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
ImageRenderOptions
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType yra nustatyta į VertexElementType.NORMAL.
VertexElementUV
Saugo 2D tekstūros koordinates. Tinklas gali turėti kelis UV sluoksnius skirtingiems tekstūros kanalams. Šis textureMapping savybė nurodo kanalo paskirtį.
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,
)Numatyta TextureMapping.DIFFUSE kai textureMapping yra null.
Papildoma savybė
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | skaityti | Tekstūros kanalas, su kuriuo susijęs šis UV sluoksnis. |
data | FVector4[] | skaityti | UV reikšmės pateiktos kaip FVector4 įrašai (z ir w yra 0). |
uvData | FVector2[] | skaityti | UV reikšmės kaip FVector2 įrašai (tik x, y). |
addData(data)
Pridėti UV reikšmes. Priima FVector2[], FVector3[], arba FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Saugo RGBA spalvų reikšmes kiekvienam viršūnių taškui. Komponentės yra intervale 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ImageRenderOptions
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType yra nustatyta į VertexElementType.VERTEX_COLOR.
ImageRenderOptions
Pridėti normalės į trikampinį tinklą:
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');Pridėti UV koordinates:
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');