VertexElement — Aspose.3D TypeScript API Reference

Csomag: @aspose/3d (v24.12.0)

VertexElement az absztrakt alaposztály a csúcsonkénti attribútumcsatornák számára, amelyek egy Geometry.Minden csatorna egy típusos adat tömböt tartalmaz, és mappingMode / referenceMode metaadatok, amelyek szabályozzák, hogyan kapcsolódik az adat a geometriai primitívekhez. Az alosztályok: VertexElementNormal, VertexElementUV, és VertexElementVertexColor.

import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';

ImageRenderOptions

export abstract class VertexElement implements IIndexedVertexElement

ImageRenderOptions

constructor(
  elementType: VertexElementType,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

ImageRenderOptions mappingMode van MappingMode.CONTROL_POINT; alapértelmezett referenceMode van ReferenceMode.DIRECT.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
vertexElementTypeVertexElementTypeolvasA réteg szemantikus típusa.
namestringolvasás/írásOpcionális címke ehhez a réteghez.
mappingModeMappingModeolvasás/írásSzabályozza, hogy melyik geometriai primitívhez tartozik az egyes értékek.
referenceModeReferenceModeolvasás/írásSzabályozza, hogy az értékek közvetlenül vagy egy index tömbön keresztül legyenek elérve.
indicesnumber[]olvasásIndex tömb a IndexToDirect referencia mód.

ImageRenderOptions

setIndices(data)

NOT IMPLEMENTED. Az alapon VertexElement osztály, ez a metódus dob Error('set_indices is not implemented') futásidőben. Az alosztályok VertexElementFVector és VertexElementIntsTemplate adj működő implementációkat.

Cserélje le az index tömböt.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. Az alapon VertexElement osztály, ez a metódus dob Error('clear is not implemented') futásidőben. Az alosztályok VertexElementFVector és VertexElementIntsTemplate biztosítson működő implementációkat.

Távolítsa el a rétegről az összes adatot és indexet.

clear(): void

VertexElementNormal

Tárolja a felületi normálvektorokat. A normál adatok a legtöbb renderelő számára szükségesek a helyes megvilágításhoz.

export class VertexElementNormal extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementNormal

ImageRenderOptions

new VertexElementNormal(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType rögzítve van VertexElementType.NORMAL.


VertexElementUV

2D textúra koordinátákat tárol. Egy háló több UV réteget is tartalmazhat különböző textúra csatornákhoz. A textureMapping tulajdonság azonosítja a csatorna célját.

export class VertexElementUV extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementUV

ImageRenderOptions

new VertexElementUV(
  textureMapping: TextureMapping | null = null,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

Alapértelmezett érték TextureMapping.DIFFUSE amikor textureMapping van null.

További tulajdonság

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
textureMappingTextureMappingolvasA textúra csatorna, amelyhez ez az UV réteg tartozik.
dataFVector4[]olvasUV értékek kitéve mint FVector4 bejegyzések (z és w 0).
uvDataFVector2[]olvasUV értékekként FVector2 bejegyzések (csak x, y).

addData(data)

UV értékek hozzáfűzése. Elfogadja FVector2[], FVector3[], vagy FVector4[].

addData(data: FVector2[] | FVector3[] | FVector4[]): void

VertexElementVertexColor

Csúcsonkénti RGBA színértékeket tárol. Az összetevők 0–1 tartományban vannak.

export class VertexElementVertexColor extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ImageRenderOptions

new VertexElementVertexColor(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType rögzítve van VertexElementType.VERTEX_COLOR.


ImageRenderOptions

Normálok hozzáadása háromszög hálóhoz:

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');

UV koordináták hozzáadása:

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');

Lásd még

 Magyar