VertexElement — Aspose.3D Python API Reference

Package : aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement est la classe de base abstraite pour toutes les couches de données par sommet qui peuvent être attachées à un Geometry objet. Chaque couche contient un tableau de valeurs de données ainsi que mapping_mode et reference_mode les métadonnées qui décrivent comment les données se projettent sur la géométrie sous-jacente. Les sous‑classes sont spécialisées pour les normales, les coordonnées UV, les couleurs de sommet, les tangentes, les binormales et les groupes de lissage.


Properties

from aspose.threed.entities import VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypelectureType sémantique de cette couche (par ex., NORMAL, UV, VERTEX_COLOR).
namestrlecture/écritureNom optionnel pour cette couche.
mapping_modeMappingModelecture/écritureContrôle la primitive géométrique à laquelle chaque valeur de données est associée.
reference_modeReferenceModelecture/écritureContrôle si les valeurs sont adressées directement ou via un tableau d’indices.
indiceslist[int]lectureTableau d’indices utilisé lorsque reference_mode est INDEX_TO_DIRECT.
datalist[FVector4]lectureValeurs de données brutes stockées en tant que FVector4 entrées (disponibles sur VertexElementFVector sous‑classes).

Properties

PropertiesPropertiesProperties
set_data(data)NoneRemplace le tableau de données. Accepte list[FVector2], list[FVector3], ou list[FVector4]; les valeurs sont normalisées à FVector4 en interne.
set_indices(data)NoneRemplacez le tableau d’indices par une liste d’entiers.
clear()NoneSupprimez toutes les valeurs de données et les indices de la couche.
copy_to(target)NoneCopiez les données et les indices vers un autre VertexElementFVector instance.

VertexElementNormal

NSeries.

from aspose.threed.entities import VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

Properties

VertexElementNormal(name="", mapping_mode=None, reference_mode=None)

vertex_element_type est fixé à VertexElementType.NORMAL.


aspose-cells-foss prend en charge l’intégration de graphiques dans les feuilles de calcul. Les graphiques sont gérés via ws.charts, une ChartCollection attachée à chaque Worksheet. Les données de séries sont ajoutées via chart.n_series, une collection NSeries.

Package : aspose.cells_foss.

from aspose.threed.entities import VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingLe canal de texture que ce calque UV sert. Par défaut à TextureMapping.DIFFUSE.

Ajoute une série de données. area est une chaîne de plage telle que “Sheet1!B1:B5”. Définissez is_vertical=True lorsque les données sont organisées en colonnes. chart_type remplace le type de graphique parent pour cette série (utilisé dans les graphiques combinés).

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappinglireLe canal de texture auquel ce calque UV est associé.

add_data(data)

Ajouter des données de coordonnées UV. Accepte list[Vector2], list[Vector3], list[FVector2], list[FVector3], ou list[FVector4]. Toutes les valeurs sont stockées en interne sous forme de FVector4 avec les composants inutilisés définis à 0.0.


VertexElementVertexColor

Ajoute un graphique du type spécifié. Tous les arguments de position sont des indices de ligne/colonne à partir de 0.

from aspose.threed.entities import VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

Properties

VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)

vertex_element_type est fixé à VertexElementType.VERTEX_COLOR.


VertexElementTangent

Stocke les vecteurs tangents par sommet ou par coin, utilisés pour le rendu de cartes normales.

from aspose.threed.entities import VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type est fixé à VertexElementType.TANGENT.


VertexElementBinormal

Stocke les vecteurs binormaux (bitangentes) par sommet ou par coin, complétant VertexElementTangent pour le mappage normal en espace tangent.

from aspose.threed.entities import VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type est fixé à VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Stocke les ID de groupe de lissage entiers par polygone. Chargé depuis des fichiers OBJ contenant s déclarations.

from aspose.threed.entities import VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type est fixé à VertexElementType.SMOOTHING_GROUP.


Énumération VertexElementType

Identifie le rôle sémantique d’une couche d’élément de sommet.

from aspose.threed.entities import VertexElementType
PropertiesProperties
NORMALVecteurs normaux de surface.
UVCoordonnées UV de texture.
VERTEX_COLORCouleur RGBA par sommet.
TANGENTVecteurs tangents pour le mappage normal.
BINORMALVecteurs binormaux (bitangents).
SMOOTHING_GROUPIdentifiants entiers de groupe de lissage par polygone.
MATERIALIndice de matériau par polygone.
POLYGON_GROUPIndice de groupement de polygones.
VERTEX_CREASEPoids de pli du sommet de subdivision.
EDGE_CREASEPoids de pli du bord de subdivision.
USER_DATADonnées arbitraires définies par l’utilisateur.
VISIBILITYDrapeaux de visibilité par élément.
SPECULARCouleur ou intensité spéculaire.
WEIGHTPoids de mélange pour le skinning.
HOLEDrapeaux de trous de polygone.

Énumération MappingMode

BooleanOperation est stocké comme métadonnée sur les nœuds produits par les importateurs CSG. @aspose/3d n’effectue pas d’évaluation booléenne à l’exécution ; l’énumération décrit l’intention enregistrée dans le fichier source.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTUne valeur par point de contrôle (vertex).
POLYGON_VERTEXUne valeur par coin de polygone (face-vertex).
POLYGONUne valeur par polygone.
EDGEUne valeur par arête.
ALL_SAMEUne seule valeur s’applique à l’ensemble du maillage.

Énumération ReferenceMode

Contrôle la façon dont le tableau de données est indexé.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTLes données sont accédées séquentiellement sans tableau d’indices séparé.
INDEXLes données sont accessibles via un tableau d’indices séparé.
INDEX_TO_DIRECTUn tableau d’indices associe chaque primitive de mappage à une position dans le tableau de données.

Properties

Attache une couche de normales à un maillage (mappage DIRECT) :

from aspose.threed import Scene
from aspose.threed.entities import Mesh, VertexElementType, MappingMode, ReferenceMode, VertexElementNormal
from aspose.threed.utilities import Vector4, FVector4

mesh = Mesh()
mesh.control_points.append(Vector4(0.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(1.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(0.5, 1.0, 0.0, 1.0))
mesh.create_polygon(0, 1, 2)

normals: VertexElementNormal = mesh.create_element(
    VertexElementType.NORMAL,
    MappingMode.CONTROL_POINT,
    ReferenceMode.DIRECT,
)
normals.set_data([
    FVector4(0.0, 0.0, 1.0, 0.0),
    FVector4(0.0, 0.0, 1.0, 0.0),
    FVector4(0.0, 0.0, 1.0, 0.0),
])

scene = Scene()
scene.root_node.create_child_node("tri", mesh)
scene.save("triangle_normals.glb")

Attache des coordonnées UV (mappage INDEX_TO_DIRECT) :

from aspose.threed import Scene
from aspose.threed.entities import Mesh, TextureMapping, MappingMode, ReferenceMode
from aspose.threed.utilities import Vector4, FVector4

mesh = Mesh()
for x, z in [(0, 0), (1, 0), (1, 1), (0, 1)]:
    mesh.control_points.append(Vector4(float(x), 0.0, float(z), 1.0))
mesh.create_polygon(0, 1, 2, 3)

uv = mesh.create_element_uv(
    TextureMapping.DIFFUSE,
    MappingMode.POLYGON_VERTEX,
    ReferenceMode.INDEX_TO_DIRECT,
)
uv.set_data([
    FVector4(0.0, 0.0, 0.0, 0.0),
    FVector4(1.0, 0.0, 0.0, 0.0),
    FVector4(1.0, 1.0, 0.0, 0.0),
    FVector4(0.0, 1.0, 0.0, 0.0),
])
uv.set_indices([0, 1, 2, 3])

scene = Scene()
scene.root_node.create_child_node("quad", mesh)
scene.save("quad_uv.glb")

Voir aussi

 Français