VertexElement — Aspose.3D FOSS for Java
Pakket: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement is de abstracte basisklasse voor per-vertex (of per-polygon, per-edge) gegevenslagen die zijn gekoppeld aan een Mesh.Elke subklasse slaat een specifiek type geometrisch attribuut op – normalen, UV-coördinaten, vertexkleuren, of smoothing-groepen.
Example
Example
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Semantisch type van dit element (alleen-lezen). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Bepaalt naar welke primitive elk waarde wordt toegewezen. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | Bepaalt hoe waarden worden geïndexeerd. |
indices | List<Integer> | getIndices() | – | Indexarray (gebruikt wanneer referentiemodus is INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | Optionele naam van deze vertex-elementlaag. |
VertexElementNormal
Slaat één normaalvector per vertex of per polygonhoek op, afhankelijk van getMappingMode(). Gegevenswaarden zijn Vector4 instanties met w ongebruikt.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | Normaalvectoren. De w component is ongebruikt (typisch 0.0). |
Retourneert: VertexElementUV
Slaat textuurcoördinaatparen op (Vector2) per vertex of per polygonhoek. Een mesh kan meerdere UV-lagen voor verschillende textuurkanalen bevatten.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector2> | getData() | UV-coördinaatparen. |
VertexElementVertexColor
Slaat per-vertex of per-corner RGBA-kleurgegevens op als Vector4 (r, g, b, a in het bereik 0–1).
Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | RGBA-kleurwaarden. |
VertexElementType-enumeratie
Identificeert de semantische rol van een vertex-elementlaag.
import com.aspose.threed.*;| Example | Example |
|---|---|
NORMAL | Normaalvectoren van het oppervlak. |
UV | Textuur-UV-coördinaten. |
VERTEX_COLOR | Per-vertex RGBA-kleur. |
TANGENT | Tangentevectoren voor normal mapping. |
BINORMAL | Binormale (bitangent) vectoren. |
MATERIAL | Per-polygon materiaalindex. |
POLYGON_GROUP | Polygon-groeperingsindex. |
VERTEX_CREASE | Subdivision-vertex vouwgewichten. |
EDGE_CREASE | Subdivision-rand vouwgewichten. |
USER_DATA | Willekeurige door de gebruiker gedefinieerde gegevens. |
VISIBILITY | Per-element zichtbaarheidsvlaggen. |
SPECULAR | Speculaire kleur of intensiteit. |
WEIGHT | Blend-gewichten voor skinning. |
HOLE | Polygon gatvlaggen. |
MappingMode-enumeratie
Bepaalt bij welke geometrische primitive elke vertex-elementwaarde hoort.
| Example | Example |
|---|---|
CONTROL_POINT | Één waarde per controlepunt (vertex). |
POLYGON_VERTEX | Een waarde per polygoonhoek (face-vertex). |
POLYGON | Een waarde per polygoon. |
ReferenceMode-enumeratie
Bepaalt hoe de vertex-elementgegevensarray wordt geïndexeerd.
| Example | Example |
|---|---|
DIRECT | Gegevens worden sequentieel benaderd zonder een aparte indices array. |
INDEX | Gegevens worden benaderd via een aparte indices array. |
INDEX_TO_DIRECT | Een indices array koppelt elke mapping primitive aan een positie in de data array. |
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());
}
}
}