VertexElement За целта.Aspose.3D TypeScript API референция

Пакет: @аспоз/3d (v24.12.0)

VertexElement е абстрактният базов клас за канали с атрибути на върха, прикрепени към Geometry.Всеки канал съдържа типени масиви от данни и mappingMode / referenceMode Метаданните, които контролират как данните се отнасят до примитиви на геометрията. Подкласовете са: VertexElementNormal, VertexElementUV, и VertexElementVertexColor.

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

VertexElement (абстрактна база)

export abstract class VertexElement implements IIndexedVertexElement

Строител

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

По подразбиране: mappingMode е в: MappingMode.CONTROL_POINT; по подразбиране referenceMode е в: ReferenceMode.DIRECT.

Свойства на веществата

ИмотътТип на изпитванеДостъп до информацияОписание на състоянието
vertexElementTypeVertexElementTypeПрочети.Семантичен тип на този слой.
namestringЧете/ПишеФакультативна етикета за този слой.
mappingModeMappingModeЧете/ПишеКонтролира с коя геометрия примитивна е свързана всяка стойност.
referenceModeReferenceModeЧете/ПишеКонтролира дали стойностите се адресират директно или чрез индекс масив.
indicesnumber[]Прочети.Индекс масив за: IndexToDirect референтен режим.

Методи за изчисляване на данните

setIndices(data)

NOT IMPLEMENTED. На основата. VertexElement клас, този метод хвърля Error('set_indices is not implemented') По-добри подкласове. VertexElementFVector и в) VertexElementIntsTemplate осигуряване на работещи приложения.

Заменете индекса.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. На основата. VertexElement клас, този метод хвърля Error('clear is not implemented') По-добри подкласове. VertexElementFVector и в) VertexElementIntsTemplate осигуряване на работещи приложения.

Изтрийте всички данни и индекси от слоя.

clear(): void

VertexElementNormal

Повечето рендери изискват нормални данни за правилното осветление.

export class VertexElementNormal extends VertexElementFVector

Наследство

VertexElementVertexElementFVectorVertexElementNormal

Строител

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

vertexElementType е фиксиран на: VertexElementType.NORMAL.


VertexElementUV (включително и на VC)

Съхранява 2D координати на текстурата. Мешката може да носи множество UV слоеве за различни канали на тъканта. textureMapping свойството идентифицира целта на канала.

export class VertexElementUV extends VertexElementFVector

Наследство

VertexElementVertexElementFVectorVertexElementUV

Строител

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

Неизпълнения на TextureMapping.DIFFUSE когато: textureMapping е в: null.

Допълнителни имоти

ИмотътТип на изпитванеДостъп до информацияОписание на състоянието
textureMappingTextureMappingПрочети.Каналът на текстурата, с който е свързан този UV слой.
dataFVector4[]Прочети.УВ стойности, изложени като: FVector4 вписвания (z и w са 0).
uvDataFVector2[]Прочети.УВ стойности като: FVector2 вписвания (само x, y).

addData(data)

Приложете UV стойности. FVector2[], FVector3[], или FVector4[].

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

VertexElementVertexColor

Съхранява цветни стойности на RGBA за всеки върх. Компонентите са в диапазона 01.

export class VertexElementVertexColor extends VertexElementFVector

Наследство

VertexElementVertexElementFVectorVertexElementVertexColor

Строител

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

vertexElementType е фиксиран на: VertexElementType.VERTEX_COLOR.


Примери за това

Добавяне на нормали към триъгълна мрежа:

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

Добавете УВ координати:

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

Вижте също:

 Български