VertexElement

VertexElement — Aspose.3D FOSS for Java

Paket: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement är den abstrakta basklassen för per-vertex (eller per-polygon, per-edge) datalager som är fästa vid en Mesh.Varje underklass lagrar en specifik typ av geometrisk attribut – normaler, UV-koordinater, vertexfärger eller mjukgöringsgrupper.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Semantisk typ för detta element (skrivskyddad).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Styr vilken primitiv varje värde mappar till.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Styr hur värden indexeras.
indicesList<Integer>getIndices()Indexarray (används när referensläge är INDEX_TO_DIRECT).
nameStringgetName()setName(String)Valfritt namn för detta vertex-elementlager.

VertexElementNormal

Lagrar en normalvektor per vertex eller per polygonhörn, beroende på getMappingMode(). Datavärden är Vector4 instanser med w oanvända.

import com.aspose.threed.*;

VertexElement normals = mesh.createElement(
    VertexElementType.NORMAL,
    MappingMode.CONTROL_POINT,
    ReferenceMode.DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Normalvektorer. Den w komponenten är oanvänd (vanligtvis 0.0).

Returnerar: VertexElementUV

Lagrar texturkoordinatpar (Vector2) per vertex eller per polygonhörn. Ett mesh kan ha flera UV-lager för olika texturkanaler.


VertexElementUV uv = mesh.createElementUV(
    TextureMapping.DIFFUSE,
    MappingMode.POLYGON_VERTEX,
    ReferenceMode.INDEX_TO_DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector2>getData()UV-koordinatpar.

VertexElementVertexColor

Lagrar per-vertex eller per-corner RGBA-färgdata som Vector4 (r, g, b, a i intervallet 0–1).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()RGBA-färgvärden.

VertexElementType‑uppräkning

Identifierar det semantiska rollen för ett vertex‑elementlager.

import com.aspose.threed.*;
ExampleExample
NORMALYtnormala vektorer.
UVUV-koordinater för textur.
VERTEX_COLORPer-vertex RGBA-färg.
TANGENTTangentialvektorer för normalmappning.
BINORMALBinormala (bitangent) vektorer.
MATERIALPer-polygon materialindex.
POLYGON_GROUPPolygongrupperingsindex.
VERTEX_CREASESubdivision vertex-veckvikter.
EDGE_CREASESubdivision edge-veckvikter.
USER_DATAGodtyckliga användardefinierade data.
VISIBILITYPer-element synlighetsflaggor.
SPECULARSpeculär färg eller intensitet.
WEIGHTBlandningsvikter för skinning.
HOLEPolygonhålsflaggor.

MappingMode‑uppräkning

Styr vilken geometrisk primitiv varje vertex‑elementvärde är associerat med.

ExampleExample
CONTROL_POINTEtt värde per kontrollpunkt (vertex).
POLYGON_VERTEXEtt värde per polygonhörn (face-vertex).
POLYGONEtt värde per polygon.

ReferenceMode‑uppräkning

Styr hur vertex‑elementdatatabellen indexeras.

ExampleExample
DIRECTData nås sekventiellt utan en separat indices array.
INDEXData nås via en separat indices array.
INDEX_TO_DIRECTEn indices array mappar varje mapping primitive till en position i 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());
        }
    }
}

Se även

 Svenska