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 VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | lecture | Type sémantique de cette couche (par ex., NORMAL, UV, VERTEX_COLOR). |
name | str | lecture/écriture | Nom optionnel pour cette couche. |
mapping_mode | MappingMode | lecture/écriture | Contrôle la primitive géométrique à laquelle chaque valeur de données est associée. |
reference_mode | ReferenceMode | lecture/écriture | Contrôle si les valeurs sont adressées directement ou via un tableau d’indices. |
indices | list[int] | lecture | Tableau d’indices utilisé lorsque reference_mode est INDEX_TO_DIRECT. |
data | list[FVector4] | lecture | Valeurs de données brutes stockées en tant que FVector4 entrées (disponibles sur VertexElementFVector sous‑classes). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Remplace le tableau de données. Accepte list[FVector2], list[FVector3], ou list[FVector4]; les valeurs sont normalisées à FVector4 en interne. |
set_indices(data) | None | Remplacez le tableau d’indices par une liste d’entiers. |
clear() | None | Supprimez toutes les valeurs de données et les indices de la couche. |
copy_to(target) | None | Copiez les données et les indices vers un autre VertexElementFVector instance. |
VertexElementNormal
NSeries.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVProperties
VertexElement → VertexElementFVector → VertexElementUV
Properties
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Properties | Properties | Properties |
|---|---|---|
texture_mapping | TextureMapping | Le 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).
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | lire | Le 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 VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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| Properties | Properties |
|---|---|
NORMAL | Vecteurs normaux de surface. |
UV | Coordonnées UV de texture. |
VERTEX_COLOR | Couleur RGBA par sommet. |
TANGENT | Vecteurs tangents pour le mappage normal. |
BINORMAL | Vecteurs binormaux (bitangents). |
SMOOTHING_GROUP | Identifiants entiers de groupe de lissage par polygone. |
MATERIAL | Indice de matériau par polygone. |
POLYGON_GROUP | Indice de groupement de polygones. |
VERTEX_CREASE | Poids de pli du sommet de subdivision. |
EDGE_CREASE | Poids de pli du bord de subdivision. |
USER_DATA | Données arbitraires définies par l’utilisateur. |
VISIBILITY | Drapeaux de visibilité par élément. |
SPECULAR | Couleur ou intensité spéculaire. |
WEIGHT | Poids de mélange pour le skinning. |
HOLE | Drapeaux 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| Properties | Properties |
|---|---|
CONTROL_POINT | Une valeur par point de contrôle (vertex). |
POLYGON_VERTEX | Une valeur par coin de polygone (face-vertex). |
POLYGON | Une valeur par polygone. |
EDGE | Une valeur par arête. |
ALL_SAME | Une 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| Properties | Properties |
|---|---|
DIRECT | Les données sont accédées séquentiellement sans tableau d’indices séparé. |
INDEX | Les données sont accessibles via un tableau d’indices séparé. |
INDEX_TO_DIRECT | Un 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")