VertexElement

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

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Semantisch type van dit element (alleen-lezen).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Bepaalt naar welke primitive elk waarde wordt toegewezen.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Bepaalt hoe waarden worden geïndexeerd.
indicesList<Integer>getIndices()Indexarray (gebruikt wanneer referentiemodus is INDEX_TO_DIRECT).
nameStringgetName()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

ExampleExampleExampleExample
dataList<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

ExampleExampleExampleExample
dataList<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

ExampleExampleExampleExample
dataList<Vector4>getData()RGBA-kleurwaarden.

VertexElementType-enumeratie

Identificeert de semantische rol van een vertex-elementlaag.

import com.aspose.threed.*;
ExampleExample
NORMALNormaalvectoren van het oppervlak.
UVTextuur-UV-coördinaten.
VERTEX_COLORPer-vertex RGBA-kleur.
TANGENTTangentevectoren voor normal mapping.
BINORMALBinormale (bitangent) vectoren.
MATERIALPer-polygon materiaalindex.
POLYGON_GROUPPolygon-groeperingsindex.
VERTEX_CREASESubdivision-vertex vouwgewichten.
EDGE_CREASESubdivision-rand vouwgewichten.
USER_DATAWillekeurige door de gebruiker gedefinieerde gegevens.
VISIBILITYPer-element zichtbaarheidsvlaggen.
SPECULARSpeculaire kleur of intensiteit.
WEIGHTBlend-gewichten voor skinning.
HOLEPolygon gatvlaggen.

MappingMode-enumeratie

Bepaalt bij welke geometrische primitive elke vertex-elementwaarde hoort.

ExampleExample
CONTROL_POINTÉén waarde per controlepunt (vertex).
POLYGON_VERTEXEen waarde per polygoonhoek (face-vertex).
POLYGONEen waarde per polygoon.

ReferenceMode-enumeratie

Bepaalt hoe de vertex-elementgegevensarray wordt geïndexeerd.

ExampleExample
DIRECTGegevens worden sequentieel benaderd zonder een aparte indices array.
INDEXGegevens worden benaderd via een aparte indices array.
INDEX_TO_DIRECTEen 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());
        }
    }
}

Zie ook

 Nederlands