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 IIndexedVertexElementBauarbeiter
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ögenswerte | Typ der | Zugang zu den Informationen | Beschreibung |
|---|---|---|---|
vertexElementType | VertexElementType | Lesen Sie . | Semantischer Typ dieser Schicht. |
name | string | Lesen/Schreiben | Optionales Etikett für diese Schicht. |
mappingMode | MappingMode | Lesen/Schreiben | Steuert, mit welcher Geometrie-Primitive jeder Wert assoziiert ist. |
referenceMode | ReferenceMode | Lesen/Schreiben | Steuert, ob Werte direkt oder über ein Index-Array adressiert werden. |
indices | number[] | Lesen Sie . | Index-Array für die IndexToDirect Referenzmodus. |
Methoden und Verfahren
setIndices(data)
NOT IMPLEMENTED. Auf der Basis.
VertexElementDiese Methode wirft dieError('set_indices is not implemented')Die Unterklassen werden in der Ausführungsklasse ausgeführt.VertexElementFVectorund .VertexElementIntsTemplatedie Durchführung von Arbeitsprogrammen.
Ersetzen Sie das Index-Array.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Auf der Basis.
VertexElementDiese Methode wirft dieError('clear is not implemented')Die Unterklassen werden in der Ausführungsklasse ausgeführt.VertexElementFVectorund .VertexElementIntsTemplatedie Durchführung von Arbeitsprogrammen.
Entfernen Sie alle Daten und Indizes aus der Schicht.
clear(): voidVertexElementNormal
Normalen Daten werden von den meisten Renderern für eine korrekte Beleuchtung benötigt.
export class VertexElementNormal extends VertexElementFVectorErbschaft
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementFVectorErbschaft
VertexElement → VertexElementFVector → VertexElementUV
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ögenswerte | Typ der | Zugang zu den Informationen | Beschreibung |
|---|---|---|---|
textureMapping | TextureMapping | Lesen Sie . | Der Texturkanal, mit dem diese UV-Schicht verbunden ist. |
data | FVector4[] | Lesen Sie . | UV-Werte, die als FVector4 Eintragungen (z und w sind 0). |
uvData | FVector2[] | 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[]): voidVertexElementVertexColor
Speichert Farbwerte pro RGBA-Stich. Die Komponenten liegen im Bereich 01.
export class VertexElementVertexColor extends VertexElementFVectorErbschaft
VertexElement → VertexElementFVector → VertexElementVertexColor
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');