VertexElement — Aspose.3D TypeScript API Reference
Pakotne: @aspose/3d (v24.12.0)
VertexElement ir abstrakta pamata klase per-virsotnes atribūtu kanāliem, kas pievienoti Geometry. Katrs kanāls satur tipizētu datu masīvu un mappingMode / referenceMode metadatus, kas kontrolē, kā dati attiecas uz ģeometrijas primitīviem. Apakšklases ir: VertexElementNormal, VertexElementUV, un 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 ir MappingMode.CONTROL_POINT; noklusējums referenceMode ir ReferenceMode.DIRECT.
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | lasīt | Semantiskais tips šim slānim. |
name | string | lasīt/rakstīt | Pēc izvēles etiķete šim slānim. |
mappingMode | MappingMode | lasīt/rakstīt | Kontrolē, ar kuru ģeometrijas primitīvu ir saistīta katra vērtība. |
referenceMode | ReferenceMode | lasīt/rakstīt | Kontrolē, vai vērtības tiek adresētas tieši vai caur indeksa masīvu. |
indices | number[] | lasīt | Indeksa masīvs priekš IndexToDirect atsauces režīms. |
ImageRenderOptions
setIndices(data)
NOT IMPLEMENTED. Uz bāzes VertexElement klase, šī metode izsauc Error('set_indices is not implemented') izpildes laikā. Apakšklases VertexElementFVector un VertexElementIntsTemplate nodrošiniet darbojošas implementācijas.
Aizstājiet indeksa masīvu.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Uz bāzes VertexElement klase, šī metode izsauc Error('clear is not implemented') izpildes laikā. Apakšklases VertexElementFVector un VertexElementIntsTemplate sniedziet funkcionālas implementācijas.
Noņemiet visus datus un indeksus no slāņa.
clear(): voidVertexElementNormal
Saglabā virsmas normālu vektorus. Normālu dati ir nepieciešami vairumam renderētāju, lai nodrošinātu pareizu apgaismojumu.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
ImageRenderOptions
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType ir fiksēts uz VertexElementType.NORMAL.
VertexElementUV
Saglabā 2D tekstūras koordinātas. Tīkls var saturēt vairākus UV slāņus dažādiem tekstūras kanāliem. Šis textureMapping īpašība identificē kanāla mērķi.
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,
)Noklusētais ir TextureMapping.DIFFUSE kad textureMapping ir null.
Papildu īpašība
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | lasīt | Tekstūras kanāls, ar ko šis UV slānis ir saistīts. |
data | FVector4[] | lasīt | UV vērtības atklātas kā FVector4 ieraksti (z un w ir 0). |
uvData | FVector2[] | lasāmi | UV vērtības kā FVector2 ieraksti (tikai x, y). |
addData(data)
Pievieno UV vērtības. Pieņem FVector2[], FVector3[], vai FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Saglabā RGBA krāsu vērtības katram virsotnei. Komponentes ir diapazonā 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ImageRenderOptions
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType ir fiksēts uz VertexElementType.VERTEX_COLOR.
ImageRenderOptions
Pievienot normāles trīsstūra režģim:
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');Pievienot UV koordinātas:
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');