VertexElement — Aspose.3D FOSS for Java
Pakke: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement er den abstrakte grundklasse for per-vertex (eller per-polygon, per-edge) datalag, der er knyttet til en Mesh.Hver underklasse gemmer en specifik type geometrisk attribut – normaler, UV-koordinater, vertexfarver eller udjævningsgrupper.
Example
Example
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Semantisk type af dette element (kun læsning). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Styrer hvilken primitive hver værdi kortlægges til. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | Styrer hvordan værdier indekseres. |
indices | List<Integer> | getIndices() | – | Indeksarray (bruges når reference-tilstand er INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | Valgfrit navn for dette vertex-elementlag. |
VertexElementNormal
Gemmer én normalvektor per vertex eller per polygonhjørne, afhængigt af getMappingMode(). Dataværdier er Vector4 instanser med w ubrugt.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Normalvektorer. Den w komponent er ubrugt (typisk 0.0). |
Returnerer: VertexElementUV
Gemmer teksturkoordinatpar (Vector2) per vertex eller per polygonhjørne. Et mesh kan indeholde flere UV-lag for forskellige teksturkanaler.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector2> | getData() | UV-koordinatpar. |
VertexElementVertexColor
Gemmer per-vertex eller per-hjørne RGBA-farvedata som Vector4 (r, g, b, a i intervallet 0–1).
Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | RGBA-farveværdier. |
VertexElementType-enumeration
Identificerer den semantiske rolle for et vertex‑elementlag.
import com.aspose.threed.*;| Example | Example |
|---|---|
NORMAL | Overfladens normalvektorer. |
UV | Tekstur UV-koordinater. |
VERTEX_COLOR | Per-vertex RGBA-farve. |
TANGENT | Tangentialvektorer til normalkortlægning. |
BINORMAL | Binormal (bitangent) vektorer. |
MATERIAL | Per-polygon materialindeks. |
POLYGON_GROUP | Polygongrupperingsindeks. |
VERTEX_CREASE | Subdivision vertex foldervægte. |
EDGE_CREASE | Subdivision kant foldervægte. |
USER_DATA | Arbitrær brugerdefineret data. |
VISIBILITY | Per-element synlighed flags. |
SPECULAR | Spekulær farve eller intensitet. |
WEIGHT | Blandingsvægte til skinning. |
HOLE | Polygonhul-flag. |
MappingMode-enumeration
Styrer hvilken geometriprimitiv hver vertex‑elementværdi er knyttet til.
| Example | Example |
|---|---|
CONTROL_POINT | Én værdi pr. kontrolpunkt (vertex). |
POLYGON_VERTEX | Én værdi per polygonhjørne (face-vertex). |
POLYGON | Én værdi per polygon. |
ReferenceMode-enumeration
Styrer hvordan vertex‑elementdatamatricen indekseres.
| Example | Example |
|---|---|
DIRECT | Data tilgås sekventielt uden et separat indeksarray. |
INDEX | Data tilgås via et separat indeksarray. |
INDEX_TO_DIRECT | Et indeksarray kortlægger hver mapping primitive til en position i data arrayet. |
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());
}
}
}