VertexElement — Aspose.3D TypeScript API Αναφορά

Συσκευή: @aspose/3d (v24.12.0)

VertexElement είναι η αφηρημένη βασική τάξη για κανάλια χαρακτηριστικών per-vertex που συνδέονται με μια Geometry.Κάθε κανάλι περιέχει μια γραπτή σειρά δεδομένων και mappingMode / referenceMode Μεταδεδομένα που ελέγχουν το πώς τα δεδομένα σχετίζονται με τις πρωτόγονες γεωμετρικές. Οι υποκλάσσες είναι: VertexElementNormal, VertexElementUV, και VertexElementVertexColor.

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

VertexElement (αποκλειστική βάση)

export abstract class VertexElement implements IIndexedVertexElement

Methods (Αποδέκτης θέσης)

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

Προεπιλεγμένο mappingMode είναι: MappingMode.CONTROL_POINT; κατά προεπιλογή referenceMode είναι: ReferenceMode.DIRECT.

Methods (Αποδέκτης θέσης)

Methods (Αποδέκτης θέσης)Methods (Αποδέκτης θέσης)ΠρόσβασηMethods (Αποδέκτης θέσης)
vertexElementTypeVertexElementTypeΔιάβασε.Σημασιακός τύπος αυτού του στρώματος.
namestringΔιαβάστε/ΓράψτεΕπιλογική ετικέτα για αυτό το στρώμα.
mappingModeMappingModeΔιαβάστε/ΓράψτεΕλέγχει με ποια πρωτόγονη γεωμετρία σχετίζεται κάθε τιμή.
referenceModeReferenceModeΔιαβάστε/ΓράψτεΕλέγχει εάν οι τιμές απευθύνονται άμεσα ή μέσω πίνακα δείκτη.
indicesnumber[]Διάβασε.Δείκτης πίνακα για: IndexToDirect κατάσταση αναφοράς.

Methods (Αποδέκτης θέσης)

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

Methods (Αποδέκτης θέσης)

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

vertexElementType είναι σταθερό σε: VertexElementType.NORMAL.


VertexElementUV

Αποθηκεύει διδιάστατες συντεταγμένες υφής. Ένα πλέγμα μπορεί να φέρει πολλαπλά στρώματα υπεριώδους ακτινοβολίας για διαφορετικά κανάλια υλικής. textureMapping Η ιδιότητα προσδιορίζει τον σκοπό του καναλιού.

export class VertexElementUV extends VertexElementFVector

Κληρονομιά

VertexElementVertexElementFVectorVertexElementUV

Methods (Αποδέκτης θέσης)

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

Παραλείψεις σε: TextureMapping.DIFFUSE πότε; textureMapping είναι: null.

Πρόσθετη περιουσία

Methods (Αποδέκτης θέσης)Methods (Αποδέκτης θέσης)ΠρόσβασηMethods (Αποδέκτης θέσης)
textureMappingTextureMappingΔιάβασε.Το κανάλι υφής με το οποίο συνδέεται αυτό το στρώμα UV.
dataFVector4[]Διάβασε.Αξίες UV που εκτίθενται ως: FVector4 καταχωρίσεις (z και w είναι 0).
uvDataFVector2[]Διάβασε.Τιμές UV ως: FVector2 καταχωρίσεις (μόνο x, y).

addData(data)

Προσθέστε τιμές UV. FVector2[], FVector3[], ή FVector4[].

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

VertexElementVertexColor

Αποθηκεύει τιμές χρώματος RGBA ανά κορυφή. Τα στοιχεία βρίσκονται στο εύρος 01.

export class VertexElementVertexColor extends VertexElementFVector

Κληρονομιά

VertexElementVertexElementFVectorVertexElementVertexColor

Methods (Αποδέκτης θέσης)

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

Προσθέστε συντεταγμένες UV:

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

Βλέπε επίσης:

 Ελληνικά