VertexElement

VertexElement — Aspose.3D FOSS for Java

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

VertexElement yra abstrakti bazinė klasė, skirta viršūnės (arba daugiakampio, krašto) duomenų sluoksniams, priskirtiems prie Mesh.Kiekviena išvestinė klasė saugo konkretų geometrinį atributą – normalės, UV koordinatės, viršūnių spalvos arba glotninimo grupės.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Semantinis šio elemento tipas (tik skaitymui).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Valdo, kuriam primityvui priskiriama kiekviena reikšmė.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Valdo, kaip indeksuojamos reikšmės.
indicesList<Integer>getIndices()Indeksų masyvas (naudojamas, kai nuorodos režimas yra INDEX_TO_DIRECT).
nameStringgetName()setName(String)Nebūtinas šio viršūnės elemento sluoksnio pavadinimas.

VertexElementNormal

Saugo po vieną normalės vektorių kiekvienai viršūnei arba daugiakampio kampui, priklausomai nuo getMappingMode(). Duomenų reikšmės yra Vector4 instancijos su w nenaudojama.

import com.aspose.threed.*;

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

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Normalės vektoriai. w komponentas nenaudojamas (dažniausiai 0.0).

Returns: VertexElementUV

Saugo tekstūros koordinatų poras (Vector2) vienam viršūnės taškui arba poligono kampui. Tinklas gali turėti kelis UV sluoksnius skirtingiems tekstūros kanalams.


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

Example

ExampleExampleExampleExample
dataList<Vector2>getData()UV koordinatų poros.

VertexElementVertexColor

Saugo vienam viršūnei arba kampui RGBA spalvų duomenis kaip Vector4 (r, g, b, a intervale 0–1).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()RGBA spalvų reikšmės.

VertexElementType enumeracija

Nustato semantinį viršūnės elemento sluoksnio vaidmenį.

import com.aspose.threed.*;
ExampleExample
NORMALPaviršiaus normalių vektoriai.
UVTekstūros UV koordinatės.
VERTEX_COLORKiekvienos viršūnės RGBA spalva.
TANGENTTangentiniai vektoriai normal mappingui.
BINORMALBinormaliniai (bitangent) vektoriai.
MATERIALKiekvieno daugiakampio medžiagos indeksas.
POLYGON_GROUPDaugiakampio grupavimo indeksas.
VERTEX_CREASESubdivision viršūnės įlenkimo svoriai.
EDGE_CREASESubdivision krašto įlenkimo svoriai.
USER_DATABet kokie vartotojo apibrėžti duomenys.
VISIBILITYVienos elemento matomumo vėliavos.
SPECULARSpinduliuojanti spalva arba intensyvumas.
WEIGHTMaišymo svoriai skinningui.
HOLEPoligono skylės vėliavos.

MappingMode enumeracija

Valdo, su kuriuo geometriniu primityvu susijusi kiekviena viršūnės elemento reikšmė.

ExampleExample
CONTROL_POINTViena reikšmė kiekvienam valdymo taškui (viršūnei).
POLYGON_VERTEXViena reikšmė kiekvienam poligono kampui (veido-viršūnei).
POLYGONViena reikšmė kiekvienam poligonui.

ReferenceMode enumeracija

Valdo, kaip indeksuojamas viršūnės elemento duomenų masyvas.

ExampleExample
DIRECTDuomenys pasiekiami nuosekliai be atskiros indeksų matricos.
INDEXDuomenys pasiekiami per atskirą indeksų matricą.
INDEX_TO_DIRECTIndeksų masyvas susieja kiekvieną susiejimo primityvą su pozicija duomenų masyve.

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());
        }
    }
}

Žr. taip pat

 Lietuvių