VertexElement — Aspose.3D FOSS for Java
Pacote: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement é a classe base abstrata para camadas de dados por vértice (ou por polígono, por aresta) anexadas a Mesh.Cada subclasse armazena um tipo específico de atributo geométrico – normais, coordenadas UV, cores de vértice ou grupos de suavização.
Enumerations
Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Tipo semântico deste elemento (somente leitura). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Controla a qual primitiva cada valor está mapeado. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | Controla como os valores são indexados. |
indices | List<Integer> | getIndices() | – | Array de índices (usado quando o modo de referência é INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | Nome opcional desta camada de elemento de vértice. |
VertexElementNormal
Armazena um vetor normal por vértice ou por canto de polígono, dependendo de getMappingMode(). Os valores de dados são Vector4 instâncias com w não usado.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
data | List<Vector4> | getData() | Vetores normais. O w componente não é usado (tipicamente 0.0). |
Returns: VertexElementUV
Armazena pares de coordenadas de textura (Vector2) por vértice ou por canto do polígono. Uma malha pode conter várias camadas UV para diferentes canais de textura.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
data | List<Vector2> | getData() | Pares de coordenadas UV. |
VertexElementVertexColor
Armazena dados de cor RGBA por vértice ou por canto como Vector4 (r, g, b, a no intervalo 0–1).
Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
data | List<Vector4> | getData() | Valores de cor RGBA. |
Enumeração VertexElementType
Identifica a função semântica de uma camada de elemento de vértice.
import com.aspose.threed.*;| Enumerations | Enumerations |
|---|---|
NORMAL | Vetores normais de superfície. |
UV | Coordenadas UV da textura. |
VERTEX_COLOR | Cor RGBA por vértice. |
TANGENT | Vetores tangentes para mapeamento normal. |
BINORMAL | Vetores binormais (bitangentes). |
MATERIAL | Índice de material por polígono. |
POLYGON_GROUP | Índice de agrupamento de polígonos. |
VERTEX_CREASE | Pesos de dobra de vértice na subdivisão. |
EDGE_CREASE | Pesos de dobra de aresta na subdivisão. |
USER_DATA | Dados arbitrários definidos pelo usuário. |
VISIBILITY | Flags de visibilidade por elemento. |
SPECULAR | Cor ou intensidade especular. |
WEIGHT | Pesos de mistura para skinning. |
HOLE | Flags de furos de polígonos. |
Enumeração MappingMode
Controla a qual primitiva geométrica cada valor de elemento de vértice está associado.
| Enumerations | Enumerations |
|---|---|
CONTROL_POINT | Um valor por ponto de controle (vértice). |
POLYGON_VERTEX | Um valor por canto do polígono (face-vertex). |
POLYGON | Um valor por polígono. |
Enumeração ReferenceMode
Controla como o array de dados do elemento de vértice é indexado.
| Enumerations | Enumerations |
|---|---|
DIRECT | Os dados são acessados sequencialmente sem um array de índices separado. |
INDEX | Os dados são acessados via um array de índices separado. |
INDEX_TO_DIRECT | Um array de índices mapeia cada primitiva de mapeamento para uma posição no array de dados. |
Enumerations
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());
}
}
}