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árgyak | A típus: | Hozzáférés | Leírás |
|---|---|---|---|
vertexElementType | VertexElementType | Olvasd! | A réteg szemantikus típusa. |
name | string | Olvasás/írás | Az ezen rétegre vonatkozó nem kötelező címke. |
mappingMode | MappingMode | Olvasás/írás | Az egyes értékekhez kapcsolódó geometriai primitív irányítás. |
referenceMode | ReferenceMode | Olvasás/írás | Ellenőrzi, hogy az értékeket közvetlenül vagy index array-en keresztül helyezze el. |
indices | number[] | Olvasd! | Index-tartomány a IndexToDirect referencia-mód. |
Módszerek
setIndices(data)
NOT IMPLEMENTED. A bázison.
VertexElementosztály, ez a módszer dobjaError('set_indices is not implemented')A szubosztályok a következők:VertexElementFVectorés a következők:VertexElementIntsTemplateműködő megvalósításokat biztosítanak.
Változtassa ki az index-sorozatot.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. A bázison.
VertexElementosztály, ez a módszer dobjaError('clear is not implemented')A szubosztályok a következők:VertexElementFVectorés a következők:VertexElementIntsTemplateműködő megvalósításokat biztosítanak.
Eltávolítjuk az összes adatot és indexet a rétegből.
clear(): voidVertexElementNormal
A legtöbb rendszerező rendszer normál adatokat igényel a megfelelő világításhoz.
export class VertexElementNormal extends VertexElementFVectorÖröklés
VertexElement → VertexElementFVector → VertexElementNormal
É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
VertexElement → VertexElementFVector → VertexElementUV
É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árgyak | A típus: | Hozzáférés | Leírás |
|---|---|---|---|
textureMapping | TextureMapping | Olvasd! | A UV réteghez kapcsolódó textúracsatorna. |
data | FVector4[] | Olvasd! | UV-értékek, amelyek a következők szerint vannak kitéve: FVector4 bejegyzések (z és w a következők: 0). |
uvData | FVector2[] | 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[]): voidVertexElementVertexColor
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
VertexElement → VertexElementFVector → VertexElementVertexColor
É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');