VertexElement — Aspose.3D TypeScript API Reference
Paket için : @Aşka / 3D (yani 24.0 ve 0)
VertexElement - Per-vertex atribut kanalları için abstrak temel sınıfı, bir Geometry.Her kanal bir tipik veri aralığı tutar ve mappingMode / referenceMode Metadata, geometrik primitifler ile nasıl ilişkilendirildiğini kontrol eder. alt sınıflar şunlardır: VertexElementNormal, VertexElementUV,ve VertexElementVertexColor.
import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';VertexElement (abstrakt temel)
export abstract class VertexElement implements IIndexedVertexElement { }Constructor
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Default mappingMode Onu MappingMode.CONTROL_POINT;• Default referenceMode Onu ReferenceMode.DIRECT.
Properties
| Property | Type | Access | Description |
|---|---|---|---|
vertexElementType | VertexElementType | Read | Bu katmanın semantik türü. |
name | string | Okumak / Yazmak | Bu katman için seçmeli etiket. |
mappingMode | MappingMode | Okumak / Yazmak | Geometri ilkel her değer ile ilişkilendirilir. |
referenceMode | ReferenceMode | Okumak / Yazmak | Değerlerin doğrudan veya bir endeks aralığı aracılığıyla yönlendirilip yönlenmediğini kontrol eder. |
indices | number[] | Read | Index Array için IndexToDirect Referans Modu ile. |
Methods
setIndices(data)
NOT IMPLEMENTED. Temelinde
VertexElementbu yöntem, atıyorError('set_indices is not implemented')Sınıflar - SubclassesVertexElementFVectorveVertexElementIntsTemplateÇalışma uygulamaları sağlar.
İndeks dizisini değiştir.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Temelinde
VertexElementbu yöntem, atıyorError('clear is not implemented')Sınıflar - SubclassesVertexElementFVectorveVertexElementIntsTemplateÇalışma uygulamaları sağlar.
Katmandan tüm veri ve indeksleri kaldır.
clear(): voidVertexElementNormal
Yüzey normal vektörlerini depolar. Normal verileri, doğru aydınlatma için çoğu render tarafından gereklidir.
export class VertexElementNormal extends VertexElementFVector { }Inheritance
VertexElement → VertexElementFVector → VertexElementNormal
Constructor
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType sabit olarak yapılır VertexElementType.NORMAL.
VertexElementUV
2D doku koordinatları depolamaktadır. bir mesh farklı dokunmatik kanallar için çok sayıda UV katmanı taşıyabilir. textureMapping Kanalın amacı kanalı belirlenir.
export class VertexElementUV extends VertexElementFVector { }Inheritance
VertexElement → VertexElementFVector → VertexElementUV
Constructor
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Değişkenlikler için TextureMapping.DIFFUSE Ne zaman textureMapping Onu null.
Ek Mülkiyet
| Property | Type | Access | Description |
|---|---|---|---|
textureMapping | TextureMapping | Read | Bu UV tabakası ile bağlantılı olan doku kanalı. |
data | FVector4[] | Read | UV değerleri, FVector4 Z ve W (Z ve w) 0). |
uvData | FVector2[] | Read | UV değerleri FVector2 Yorumlar (y sadece x ve y). |
addData(data)
UV değerleri eklemek. kabul etmek FVector2[], FVector3[],veya FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Her köşe için RGBA renk değerlerini depolar. Bileşenler 0–1 aralığındadır.
export class VertexElementVertexColor extends VertexElementFVector { }Inheritance
VertexElement → VertexElementFVector → VertexElementVertexColor
Constructor
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType sabit olarak yapılır VertexElementType.VERTEX_COLOR.
Examples
Üçgen mesh’e normal ekle:
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 koordinatları ekle:
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');