VertexElement

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

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Semantisk type af dette element (kun læsning).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Styrer hvilken primitive hver værdi kortlægges til.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Styrer hvordan værdier indekseres.
indicesList<Integer>getIndices()Indeksarray (bruges når reference-tilstand er INDEX_TO_DIRECT).
nameStringgetName()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

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

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

ExampleExampleExampleExample
dataList<Vector4>getData()RGBA-farveværdier.

VertexElementType-enumeration

Identificerer den semantiske rolle for et vertex‑elementlag.

import com.aspose.threed.*;
ExampleExample
NORMALOverfladens normalvektorer.
UVTekstur UV-koordinater.
VERTEX_COLORPer-vertex RGBA-farve.
TANGENTTangentialvektorer til normalkortlægning.
BINORMALBinormal (bitangent) vektorer.
MATERIALPer-polygon materialindeks.
POLYGON_GROUPPolygongrupperingsindeks.
VERTEX_CREASESubdivision vertex foldervægte.
EDGE_CREASESubdivision kant foldervægte.
USER_DATAArbitrær brugerdefineret data.
VISIBILITYPer-element synlighed flags.
SPECULARSpekulær farve eller intensitet.
WEIGHTBlandingsvægte til skinning.
HOLEPolygonhul-flag.

MappingMode-enumeration

Styrer hvilken geometriprimitiv hver vertex‑elementværdi er knyttet til.

ExampleExample
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.

ExampleExample
DIRECTData tilgås sekventielt uden et separat indeksarray.
INDEXData tilgås via et separat indeksarray.
INDEX_TO_DIRECTEt 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());
        }
    }
}

Se også

 Dansk