VertexElement — Aspose.3D FOSS for Java
Πακέτο: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement είναι η αφηρημένη βασική κλάση για επίπεδα δεδομένων ανά-κορυφή (ή ανά-πολύγωνο, ανά-άκρη) που συνδέονται με ένα Mesh.Κάθε υποκλάση αποθηκεύει ένα συγκεκριμένο είδος γεωμετρικού χαρακτηριστικού — κανονικές, συντεταγμένες UV, χρώματα κορυφών ή ομάδες εξομάλυνσης.
Example
Example
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Σημασιολογικός τύπος αυτού του στοιχείου (μόνο για ανάγνωση). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Ελέγχει σε ποιο primitive αντιστοιχεί κάθε τιμή. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | Ελέγχει πώς ευρετηριάζονται οι τιμές. |
indices | List<Integer> | getIndices() | – | Πίνακας δεικτών (χρησιμοποιείται όταν η λειτουργία αναφοράς είναι INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | Προαιρετικό όνομα αυτού του επιπέδου στοιχείου κορυφής. |
VertexElementNormal
Αποθηκεύει ένα διάνυσμα κανονικής ανά κορυφή ή ανά γωνία πολύγωνου, ανάλογα με getMappingMode(). Οι τιμές δεδομένων είναι Vector4 παραδείγματα με w αχρησιμοποίητο.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Διάνυσματα κανονικής. Το w συστατικό είναι αχρησιμοποίητο (συνήθως 0.0). |
Επιστρέφει: VertexElementUV
Αποθηκεύει ζεύγη συντεταγμένων υφής (Vector2) ανά κορυφή ή ανά γωνία πολυγώνου. Ένα πλέγμα μπορεί να περιέχει πολλαπλά επίπεδα UV για διαφορετικά κανάλια υφής.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector2> | getData() | Ζεύγη συντεταγμένων UV. |
VertexElementVertexColor
Αποθηκεύει δεδομένα χρώματος RGBA ανά κορυφή ή ανά γωνία ως Vector4 (r, g, b, a στο εύρος 0–1).
Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Τιμές χρώματος RGBA. |
Απαρίθμηση VertexElementType
Καθορίζει τον σημασιολογικό ρόλο ενός επιπέδου στοιχείου κορυφής.
import com.aspose.threed.*;| Example | Example |
|---|---|
NORMAL | Διανύσματα κανονικών επιφάνειας. |
UV | Συντεταγμένες UV υφής. |
VERTEX_COLOR | Χρώμα RGBA ανά κορυφή. |
TANGENT | Διανύσματα εφαπτομένης για χαρτογράφηση κανονικών. |
BINORMAL | Διανύσματα διπλής εφαπτομένης (bitangent). |
MATERIAL | Δείκτης υλικού ανά πολύγωνο. |
POLYGON_GROUP | Δείκτης ομαδοποίησης πολυγώνων. |
VERTEX_CREASE | Βάρη ραφής κορυφής υποδιαίρεσης. |
EDGE_CREASE | Βάρη ραφής ακμής υποδιαίρεσης. |
USER_DATA | Αυθαίρετα δεδομένα ορισμένα από τον χρήστη. |
VISIBILITY | Σημαίες ορατότητας ανά στοιχείο. |
SPECULAR | Χρώμα ή ένταση αντανακλαστικού. |
WEIGHT | Βάρη ανάμειξης για skinning. |
HOLE | Σημαίες οπών πολυγώνου. |
Απαρίθμηση MappingMode
Ελέγχει ποιο γεωμετρικό πρωτότυπο συνδέεται με κάθε τιμή στοιχείου κορυφής.
| Example | Example |
|---|---|
CONTROL_POINT | Μία τιμή ανά σημείο ελέγχου (κορυφή). |
POLYGON_VERTEX | Μία τιμή ανά γωνία πολυγώνου (πρόσωπο-κορυφή). |
POLYGON | Μία τιμή ανά πολύγωνο. |
Απαρίθμηση ReferenceMode
Ελέγχει πώς γίνεται η ευρετηρίαση του πίνακα δεδομένων στοιχείου κορυφής.
| Example | Example |
|---|---|
DIRECT | Τα δεδομένα προσπελάζονται διαδοχικά χωρίς ξεχωριστό πίνακα δεικτών. |
INDEX | Τα δεδομένα προσπελάζονται μέσω ξεχωριστού πίνακα δεικτών. |
INDEX_TO_DIRECT | Ένας πίνακας δεικτών αντιστοιχίζει κάθε πρωτότυπο αντιστοίχισης σε μια θέση στον πίνακα δεδομένων. |
Example
import com.aspose.threed.Scene;
import com.aspose.threed.*;
Scene scene = Scene.fromFile("model.obj");
for (Node node : scene.getRootNode().getChildNodes()) {
if (node.getEntity() instanceof Mesh) {
Mesh mesh = (Mesh) node.getEntity();
for (VertexElement ve : mesh.getVertexElements()) {
System.out.println(" Element: " + ve.getVertexElementType()
+ " mapping=" + ve.getMappingMode()
+ " ref=" + ve.getReferenceMode());
}
}
}