PropertyCollection - A helyfogadó.

VertexElement Aspose.3D TypeScript API referencia

Pakolási csomag: @aspose/3d (v24.12.0)

VertexElement az a per-vertex attribútumcsatornákat tartalmazó absztrakt alaposztály, amely egy Geometry.Minden csatorna tartalmaz egy beírt adatot, és a következőket: mappingMode / referenceMode Az alosztályok a következők: VertexElementNormal, VertexElementUV,és a következők: VertexElementVertexColor.

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

VertexElement (absztrakt alap)

export abstract class VertexElement implements IIndexedVertexElement

Építőműves

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

Előzetesen megadott mappingMode az a MappingMode.CONTROL_POINT; alapértelmezett referenceMode az a ReferenceMode.DIRECT.

A tulajdonságok

TárgyakA típus:HozzáférésLeírás
vertexElementTypeVertexElementTypeOlvasd!A réteg szemantikus típusa.
namestringOlvasás/írásAz ezen rétegre vonatkozó nem kötelező címke.
mappingModeMappingModeOlvasás/írásAz egyes értékekhez kapcsolódó geometriai primitív irányítás.
referenceModeReferenceModeOlvasás/írásEllenőrzi, hogy az értékeket közvetlenül vagy index array-en keresztül helyezze el.
indicesnumber[]Olvasd!Index-tartomány a IndexToDirect referencia-mód.

Módszerek

setIndices(data)

NOT IMPLEMENTED. A bázison. VertexElement osztály, ez a módszer dobja Error('set_indices is not implemented') A szubosztályok a következők: VertexElementFVector és a következők: VertexElementIntsTemplate működő megvalósításokat biztosítanak.

Változtassa ki az index-sorozatot.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. A bázison. VertexElement osztály, ez a módszer dobja Error('clear is not implemented') A szubosztályok a következők: VertexElementFVector és a következők: VertexElementIntsTemplate működő megvalósításokat biztosítanak.

Eltávolítjuk az összes adatot és indexet a rétegből.

clear(): void

VertexElementNormal

A legtöbb rendszerező rendszer normál adatokat igényel a megfelelő világításhoz.

export class VertexElementNormal extends VertexElementFVector

Öröklés

VertexElementVertexElementFVectorVertexElementNormal

Építőműves

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

vertexElementType rögzített a következőkre: VertexElementType.NORMAL.


VertexElementUV

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

export class VertexElementUV extends VertexElementFVector

Öröklés

VertexElementVertexElementFVectorVertexElementUV

Építőműves

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

A nem teljesített kötelezettségek TextureMapping.DIFFUSE mikor? textureMapping az a null.

További ingatlanok

TárgyakA típus:HozzáférésLeírás
textureMappingTextureMappingOlvasd!A UV réteghez kapcsolódó textúracsatorna.
dataFVector4[]Olvasd!UV-értékek, amelyek a következők szerint vannak kitéve: FVector4 bejegyzések (z és w a következők: 0).
uvDataFVector2[]Olvasd!UV-értékek a következők szerint: FVector2 bejegyzések (csak x, y).

addData(data)

A UV-értékek hozzáadása. FVector2[], FVector3[], vagy FVector4[].

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

VertexElementVertexColor

A RGBA-szöglet szerinti színértékeket tárolja. Az összetevők a 01 tartományban vannak.

export class VertexElementVertexColor extends VertexElementFVector

Öröklés

VertexElementVertexElementFVectorVertexElementVertexColor

Építőműves

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

vertexElementType rögzített a következőkre: VertexElementType.VERTEX_COLOR.


Példák

A háromszög-hálóhoz normálokat adunk:

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

Adja hozzá az UV koordinátákat:

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