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 IIndexedVertexElementMethods (Αποδέκτης θέσης)
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Προεπιλεγμένο mappingMode είναι: MappingMode.CONTROL_POINT; κατά προεπιλογή referenceMode είναι: ReferenceMode.DIRECT.
Methods (Αποδέκτης θέσης)
| Methods (Αποδέκτης θέσης) | Methods (Αποδέκτης θέσης) | Πρόσβαση | Methods (Αποδέκτης θέσης) |
|---|---|---|---|
vertexElementType | VertexElementType | Διάβασε. | Σημασιακός τύπος αυτού του στρώματος. |
name | string | Διαβάστε/Γράψτε | Επιλογική ετικέτα για αυτό το στρώμα. |
mappingMode | MappingMode | Διαβάστε/Γράψτε | Ελέγχει με ποια πρωτόγονη γεωμετρία σχετίζεται κάθε τιμή. |
referenceMode | ReferenceMode | Διαβάστε/Γράψτε | Ελέγχει εάν οι τιμές απευθύνονται άμεσα ή μέσω πίνακα δείκτη. |
indices | number[] | Διάβασε. | Δείκτης πίνακα για: IndexToDirect κατάσταση αναφοράς. |
Methods (Αποδέκτης θέσης)
setIndices(data)
NOT IMPLEMENTED. Στην βάση.
VertexElementΗ μέθοδος αυτή ρίχνει τοError('set_indices is not implemented')Οι υποκλάσσεςVertexElementFVectorκαι β)VertexElementIntsTemplateνα παρέχουν λειτουργικές εφαρμογές.
Αντικαταστήστε το πίνακα δείκτη.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Στην βάση.
VertexElementΗ μέθοδος αυτή ρίχνει τοError('clear is not implemented')Οι υποκλάσσεςVertexElementFVectorκαι β)VertexElementIntsTemplateνα παρέχουν λειτουργικές εφαρμογές.
Αφαιρέστε όλα τα δεδομένα και τους δείκτες από το στρώμα.
clear(): voidVertexElementNormal
Οι περισσότεροι αποσμηματολογητές απαιτούν κανονικά δεδομένα για σωστό φωτισμό.
export class VertexElementNormal extends VertexElementFVectorΚληρονομιά
VertexElement → VertexElementFVector → VertexElementNormal
Methods (Αποδέκτης θέσης)
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType είναι σταθερό σε: VertexElementType.NORMAL.
VertexElementUV
Αποθηκεύει διδιάστατες συντεταγμένες υφής. Ένα πλέγμα μπορεί να φέρει πολλαπλά στρώματα υπεριώδους ακτινοβολίας για διαφορετικά κανάλια υλικής. textureMapping Η ιδιότητα προσδιορίζει τον σκοπό του καναλιού.
export class VertexElementUV extends VertexElementFVectorΚληρονομιά
VertexElement → VertexElementFVector → VertexElementUV
Methods (Αποδέκτης θέσης)
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Παραλείψεις σε: TextureMapping.DIFFUSE πότε; textureMapping είναι: null.
Πρόσθετη περιουσία
| Methods (Αποδέκτης θέσης) | Methods (Αποδέκτης θέσης) | Πρόσβαση | Methods (Αποδέκτης θέσης) |
|---|---|---|---|
textureMapping | TextureMapping | Διάβασε. | Το κανάλι υφής με το οποίο συνδέεται αυτό το στρώμα UV. |
data | FVector4[] | Διάβασε. | Αξίες UV που εκτίθενται ως: FVector4 καταχωρίσεις (z και w είναι 0). |
uvData | FVector2[] | Διάβασε. | Τιμές UV ως: FVector2 καταχωρίσεις (μόνο x, y). |
addData(data)
Προσθέστε τιμές UV. FVector2[], FVector3[], ή FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Αποθηκεύει τιμές χρώματος RGBA ανά κορυφή. Τα στοιχεία βρίσκονται στο εύρος 01.
export class VertexElementVertexColor extends VertexElementFVectorΚληρονομιά
VertexElement → VertexElementFVector → VertexElementVertexColor
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');