VertexElement — Aspose.3D Python API Reference
Pakiet: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement jest abstrakcyjną klasą bazową dla wszystkich warstw danych per‑wierzchołkowych, które mogą być dołączone do Geometry obiektu. Każda warstwa przechowuje tablicę wartości danych wraz z mapping_mode oraz reference_mode metadanymi opisującymi, jak dane mapują się na podstawową geometrię. Podklasy są wyspecjalizowane dla normalnych, współrzędnych UV, kolorów wierzchołków, stycznych, binormalnych oraz grup wygładzania.
ColladaSaveOptions
from aspose.threed.entities import VertexElementColladaSaveOptions
VertexElement
ColladaSaveOptions
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|---|
vertex_element_type | VertexElementType | odczyt | Semantyczny typ tej warstwy (np., NORMAL, UV, VERTEX_COLOR). |
name | str | odczyt/zapis | Opcjonalna nazwa tej warstwy. |
mapping_mode | MappingMode | odczyt/zapis | Kontroluje, z którym prymitywem geometrii powiązana jest każda wartość danych. |
reference_mode | ReferenceMode | odczyt/zapis | Kontroluje, czy wartości są adresowane bezpośrednio, czy poprzez tablicę indeksów. |
indices | list[int] | odczyt | Tablica indeksów używana, gdy reference_mode jest INDEX_TO_DIRECT. |
data | list[FVector4] | odczyt | Surowe wartości danych przechowywane jako FVector4 wpisy (dostępne w VertexElementFVector podklasach). |
ColladaSaveOptions
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
set_data(data) | None | Zastąp tablicę danych. Akceptuje list[FVector2], list[FVector3], lub list[FVector4]; wartości są normalizowane do FVector4 wewnętrznie. |
set_indices(data) | None | Zastąp tablicę indeksów listą liczb całkowitych. |
clear() | None | Usuń wszystkie wartości danych i indeksy z warstwy. |
copy_to(target) | None | Skopiuj dane i indeksy do innego VertexElementFVector instancji. |
VertexElementNormal
Przechowuje wektory normalne powierzchni. Dane normalne są zazwyczaj używane przez renderery do obliczeń oświetlenia.
from aspose.threed.entities import VertexElementNormalColladaSaveOptions
VertexElement → VertexElementFVector → VertexElementNormal
ColladaSaveOptions
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type jest ustalone na VertexElementType.NORMAL.
Returns: VertexElementUV
add.
from aspose.threed.entities import VertexElementUVColladaSaveOptions
VertexElement → VertexElementFVector → VertexElementUV
ColladaSaveOptions
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
texture_mapping | TextureMapping | Kanał tekstury, który obsługuje ta warstwa UV. Domyślnie TextureMapping.DIFFUSE. |
removeProperty(property)
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|---|
texture_mapping | TextureMapping | odczyt | Kanał tekstury, z którym powiązana jest ta warstwa UV. |
add_data(data)
Dołącz dane współrzędnych UV. Akceptuje list[Vector2], list[Vector3], list[FVector2], list[FVector3], lub list[FVector4]. Wszystkie wartości są przechowywane wewnętrznie jako FVector4 z nieużywanymi składnikami ustawionymi na 0.0.
VertexElementVertexColor
Przechowuje wartości koloru RGBA dla każdego wierzchołka w zakresie 0–1.
from aspose.threed.entities import VertexElementVertexColorColladaSaveOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ColladaSaveOptions
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type jest ustalone na VertexElementType.VERTEX_COLOR.
VertexElementTangent
Przechowuje wektory stycznych dla każdego wierzchołka lub rogu, używane przy renderowaniu map normalnych.
from aspose.threed.entities import VertexElementTangentColladaSaveOptions
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type jest ustalone na VertexElementType.TANGENT.
VertexElementBinormal
Przechowuje wektory binormalne (bitangens) na wierzchołek lub na róg, uzupełniając VertexElementTangent dla mapowania normalnego w przestrzeni stycznej.
from aspose.threed.entities import VertexElementBinormalColladaSaveOptions
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type jest ustalone na VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Przechowuje całkowite identyfikatory grup wygładzania na wielokąt. Ładowane z plików OBJ, które zawierają s deklaracje.
from aspose.threed.entities import VertexElementSmoothingGroupColladaSaveOptions
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type jest ustalone na VertexElementType.SMOOTHING_GROUP.
A3DObject, SceneObject, Entity — podstawowe klasy bazowe współdzielone przez wszystkie obiekty @aspose/3d
Określa semantyczną rolę warstwy elementu wierzchołka.
from aspose.threed.entities import VertexElementType| ColladaSaveOptions | ColladaSaveOptions |
|---|---|
NORMAL | Wektory normalne powierzchni. |
UV | Współrzędne UV tekstury. |
VERTEX_COLOR | Kolor RGBA na wierzchołku. |
TANGENT | Wektory stycznych do mapowania normalnego. |
BINORMAL | Wektory binormalne (bitangent). |
SMOOTHING_GROUP | Identyfikatory całkowite grup wygładzania dla każdego wielokąta. |
MATERIAL | Indeks materiału dla każdego wielokąta. |
POLYGON_GROUP | Indeks grupowania wielokątów. |
VERTEX_CREASE | Wagi załamań wierzchołków podziału. |
EDGE_CREASE | Wagi załamań krawędzi podziału. |
USER_DATA | Arbitralne dane definiowane przez użytkownika. |
VISIBILITY | Flagi widoczności dla każdego elementu. |
SPECULAR | Kolor lub intensywność odbicia. |
WEIGHT | Wagi mieszania dla skinningu. |
HOLE | Flagi otworów w wielokątach. |
enumeracja MappingMode
A3DObject, SceneObject, Entity — podstawowe klasy bazowe współdzielone przez wszystkie obiekty @aspose/3d.
from aspose.threed.entities import MappingMode| ColladaSaveOptions | ColladaSaveOptions |
|---|---|
CONTROL_POINT | Jedna wartość na punkt kontrolny (wierzchołek). |
POLYGON_VERTEX | Jedna wartość na róg wielokąta (face-vertex). |
POLYGON | Jedna wartość na wielokąt. |
EDGE | Jedna wartość na krawędź. |
ALL_SAME | Jedna wartość ma zastosowanie do całej siatki. |
Constructor
Pakiet: @aspose/3d (v24.12.0).
from aspose.threed.entities import ReferenceMode| ColladaSaveOptions | ColladaSaveOptions |
|---|---|
DIRECT | Dane są dostępne kolejno, bez osobnej tablicy indeksów. |
INDEX | Dane są dostępne za pośrednictwem osobnej tablicy indeksów. |
INDEX_TO_DIRECT | Tablica indeksów mapuje każdy prymityw mapowania na pozycję w tablicy danych. |
ColladaSaveOptions
Dołącz warstwę normalną do siatki (mapowanie 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")Te trzy klasy stanowią podstawę hierarchii klas @aspose/3d. Każdy publiczny obiekt w bibliotece ostatecznie dziedziczy po A3DObject, który zapewnia system nazw i dynamicznych właściwości. SceneObject dodaje śledzenie przynależności do sceny. Entity jest bazą dla wszystkich obiektów, które mogą być dołączone do Node jako jego główna jednostka (siatki, kamery, światła itp.).:
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")