VertexElement Aspose.3D TypeScript API-Referenz für die Verwendung von Daten in der Anwendung des Programms.

Packung: @aspose/3d (v24.12.0)

VertexElement ist die abstrakte Basisklasse für per-vertex Attributkanäle, die an eine Geometry.Jeder Kanal enthält ein eingetipptes Datenarray und eine mappingMode / referenceMode Metadaten, die steuern, wie sich die Daten auf Geometrie-Primitive beziehen. Die Unterklassen sind: VertexElementNormal, VertexElementUV,und . VertexElementVertexColor.

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

VertexElement (abstrakte Basis)

export abstract class VertexElement implements IIndexedVertexElement

Bauarbeiter

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

Standard-Nummer mappingMode ist . MappingMode.CONTROL_POINT; Standardmäßige referenceMode ist . ReferenceMode.DIRECT.

Eigenschaften

Immobilien und VermögenswerteTyp derZugang zu den InformationenBeschreibung
vertexElementTypeVertexElementTypeLesen Sie .Semantischer Typ dieser Schicht.
namestringLesen/SchreibenOptionales Etikett für diese Schicht.
mappingModeMappingModeLesen/SchreibenSteuert, mit welcher Geometrie-Primitive jeder Wert assoziiert ist.
referenceModeReferenceModeLesen/SchreibenSteuert, ob Werte direkt oder über ein Index-Array adressiert werden.
indicesnumber[]Lesen Sie .Index-Array für die IndexToDirect Referenzmodus.

Methoden und Verfahren

setIndices(data)

NOT IMPLEMENTED. Auf der Basis. VertexElement Diese Methode wirft die Error('set_indices is not implemented') Die Unterklassen werden in der Ausführungsklasse ausgeführt. VertexElementFVector und . VertexElementIntsTemplate die Durchführung von Arbeitsprogrammen.

Ersetzen Sie das Index-Array.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. Auf der Basis. VertexElement Diese Methode wirft die Error('clear is not implemented') Die Unterklassen werden in der Ausführungsklasse ausgeführt. VertexElementFVector und . VertexElementIntsTemplate die Durchführung von Arbeitsprogrammen.

Entfernen Sie alle Daten und Indizes aus der Schicht.

clear(): void

VertexElementNormal

Normalen Daten werden von den meisten Renderern für eine korrekte Beleuchtung benötigt.

export class VertexElementNormal extends VertexElementFVector

Erbschaft

VertexElementVertexElementFVectorVertexElementNormal

Bauarbeiter

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

vertexElementType ist festgesetzt auf: VertexElementType.NORMAL.


VertexElementUV (Verteilungszeit)

Speichert 2D-Texturkoordinaten. Ein Netz kann mehrere UV-Schichten für verschiedene Texturkanäle tragen. textureMapping Eigenschaft identifiziert den Zweck des Kanals.

export class VertexElementUV extends VertexElementFVector

Erbschaft

VertexElementVertexElementFVectorVertexElementUV

Bauarbeiter

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

Ausfall bei TextureMapping.DIFFUSE - Wann? textureMapping ist . null.

Zusätzliche Immobilien

Immobilien und VermögenswerteTyp derZugang zu den InformationenBeschreibung
textureMappingTextureMappingLesen Sie .Der Texturkanal, mit dem diese UV-Schicht verbunden ist.
dataFVector4[]Lesen Sie .UV-Werte, die als FVector4 Eintragungen (z und w sind 0).
uvDataFVector2[]Lesen Sie .UV-Werte als FVector2 Eintragungen (nur x, y).

addData(data)

UV-Werte hinzufügen. FVector2[], FVector3[],oder , FVector4[].

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

VertexElementVertexColor

Speichert Farbwerte pro RGBA-Stich. Die Komponenten liegen im Bereich 01.

export class VertexElementVertexColor extends VertexElementFVector

Erbschaft

VertexElementVertexElementFVectorVertexElementVertexColor

Bauarbeiter

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

vertexElementType ist festgesetzt auf: VertexElementType.VERTEX_COLOR.


Beispiele

Normalen zu einem Dreieckmaschengrund:

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-Koordinaten hinzufügen:

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

Siehe auch:

 Deutsch