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

PropertyTypeAccessDescription
vertexElementTypeVertexElementTypeReadBu katmanın semantik türü.
namestringOkumak / YazmakBu katman için seçmeli etiket.
mappingModeMappingModeOkumak / YazmakGeometri ilkel her değer ile ilişkilendirilir.
referenceModeReferenceModeOkumak / YazmakDeğerlerin doğrudan veya bir endeks aralığı aracılığıyla yönlendirilip yönlenmediğini kontrol eder.
indicesnumber[]ReadIndex Array için IndexToDirect Referans Modu ile.

Methods

setIndices(data)

NOT IMPLEMENTED. Temelinde VertexElement bu yöntem, atıyor Error('set_indices is not implemented') Sınıflar - Subclasses VertexElementFVector ve VertexElementIntsTemplate Çalışma uygulamaları sağlar.

İndeks dizisini değiştir.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. Temelinde VertexElement bu yöntem, atıyor Error('clear is not implemented') Sınıflar - Subclasses VertexElementFVector ve VertexElementIntsTemplate Çalışma uygulamaları sağlar.

Katmandan tüm veri ve indeksleri kaldır.

clear(): void

VertexElementNormal

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

VertexElementVertexElementFVectorVertexElementNormal

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

VertexElementVertexElementFVectorVertexElementUV

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

PropertyTypeAccessDescription
textureMappingTextureMappingReadBu UV tabakası ile bağlantılı olan doku kanalı.
dataFVector4[]ReadUV değerleri, FVector4 Z ve W (Z ve w) 0).
uvDataFVector2[]ReadUV 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[]): void

VertexElementVertexColor

Her köşe için RGBA renk değerlerini depolar. Bileşenler 0–1 aralığındadır.

export class VertexElementVertexColor extends VertexElementFVector { }

Inheritance

VertexElementVertexElementFVectorVertexElementVertexColor

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

See Also

 Türkçe