VertexElement — Aspose.3D FOSS for Java
Pachet: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement este clasa de bază abstractă pentru straturi de date per-vertex (sau per-polygon, per-edge) atașate la un Mesh.Fiecare subclasă stochează un tip specific de atribut geometric – normale, coordonate UV, culori de vârf sau grupuri de netezire.
Example
Example
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Tip semantic al acestui element (doar citire). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Controlează la care primitivă se mapă fiecare valoare. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | Controlează modul în care valorile sunt indexate. |
indices | List<Integer> | getIndices() | – | Tablă de indici (utilizată când modul de referință este INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | Nume opțional al acestui strat de element de vârf. |
VertexElementNormal
Stochează un vector normal per vârf sau per colț de poligon, în funcție de getMappingMode(). Valorile de date sunt Vector4 instanțe cu w neutilizat.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Vectori normali. The w componenta este neutilizată (de obicei 0.0). |
Returnează: VertexElementUV
Stochează perechi de coordonate de textură (Vector2) pe vertex sau pe colț de poligon. O plasă poate conține mai multe straturi UV pentru diferite canale de textură.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector2> | getData() | Perechi de coordonate UV. |
VertexElementVertexColor
Stochează date de culoare RGBA per-vertex sau per-colț ca Vector4 (r, g, b, a în intervalul 0–1).
Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Valori de culoare RGBA. |
Enumerarea VertexElementType
Identifică rolul semantic al unui strat de element vertex.
import com.aspose.threed.*;| Example | Example |
|---|---|
NORMAL | Vectori normali de suprafață. |
UV | Coordonate UV ale texturii. |
VERTEX_COLOR | Culoare RGBA pe fiecare vârf. |
TANGENT | Vectori tangent pentru maparea normală. |
BINORMAL | Vectori binormali (bitangente). |
MATERIAL | Index de material pe fiecare poligon. |
POLYGON_GROUP | Index de grupare a poligoanelor. |
VERTEX_CREASE | Greutăți de plișcă ale vârfurilor la subdiviziune. |
EDGE_CREASE | Greutăți de plișcă ale muchiilor la subdiviziune. |
USER_DATA | Date arbitrare definite de utilizator. |
VISIBILITY | Flaguri de vizibilitate pe fiecare element. |
SPECULAR | Culoare sau intensitate speculară. |
WEIGHT | Greutăți de amestec pentru skinning. |
HOLE | Indicatori de găuri în poligon. |
Enumerarea MappingMode
Controlează cu ce primitivă geometrică este asociată fiecare valoare a elementului vertex.
| Example | Example |
|---|---|
CONTROL_POINT | O valoare pentru fiecare punct de control (vârf). |
POLYGON_VERTEX | O valoare pentru fiecare colț de poligon (față-vârf). |
POLYGON | O valoare pentru fiecare poligon. |
Enumerarea ReferenceMode
Controlează modul în care este indexat taboul de date al elementului vertex.
| Example | Example |
|---|---|
DIRECT | Datele sunt accesate secvențial fără un array separat de indici. |
INDEX | Datele sunt accesate printr-un array separat de indici. |
INDEX_TO_DIRECT | Un array de indici mapează fiecare primitiv de mapare la o poziție în array-ul de date. |
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());
}
}
}