VertexElement — Aspose.3D Python API Reference
الحزمة: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement هي الفئة الأساسية المجردة لجميع طبقات بيانات كل رأس التي يمكن إرفاقها بـ Geometry كائن. تحتفظ كل طبقة بمصفوفة من قيم البيانات مع mapping_mode و reference_mode metadata التي تصف كيفية ربط البيانات بالهندسة الأساسية. الفئات الفرعية متخصصة للـnormals، UV coordinates، vertex colours، tangents، binormals، وsmoothing groups.
Methods
from aspose.threed.entities import VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | قراءة | النوع الدلالي لهذه الطبقة (مثالاً،., NORMAL, UV, VERTEX_COLOR). |
name | str | قراءة/كتابة | اسم اختياري لهذه الطبقة. |
mapping_mode | MappingMode | قراءة/كتابة | يتحكم في الشكل الهندسي الأساسي الذي يرتبط به كل قيمة بيانات. |
reference_mode | ReferenceMode | قراءة/كتابة | يتحكم فيما إذا كانت القيم تُعالج مباشرةً أو عبر مصفوفة الفهارس. |
indices | list[int] | قراءة | مصفوفة الفهارس تُستخدم عندما reference_mode هو INDEX_TO_DIRECT. |
data | list[FVector4] | قراءة | قِيَم البيانات الخام مخزنة كـ FVector4 إدخالات (متاحة على VertexElementFVector الفئات الفرعية). |
Methods
| Methods | Methods | Methods |
|---|---|---|
set_data(data) | None | استبدل مصفوفة البيانات. يقبل list[FVector2], list[FVector3], أو list[FVector4]; القيم يتم تطبيعها إلى FVector4 داخليًا. |
set_indices(data) | None | استبدل مصفوفة الفهارس بقائمة من الأعداد الصحيحة. |
clear() | None | أزل جميع قيم البيانات والفهارس من الطبقة. |
copy_to(target) | None | انسخ البيانات والفهارس إلى VertexElementFVector مثيل. |
VertexElementNormal
يخزن متجهات السطح العمودية. عادةً ما تُستخدم بيانات المتجهات العمودية من قبل المُعالجين لحساب الإضاءة.
from aspose.threed.entities import VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
Methods
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type مُثَبَّت على VertexElementType.NORMAL.
VertexElementUV
يخزن إحداثيات القوام UV. قد يحمل النموذج عدة طبقات UV لقنوات قوام مختلفة.
from aspose.threed.entities import VertexElementUVMethods
VertexElement → VertexElementFVector → VertexElementUV
Methods
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Methods | Methods | Methods |
|---|---|---|
texture_mapping | TextureMapping | قناة النسيج التي تخدمها طبقة UV هذه. الافتراضي هو TextureMapping.DIFFUSE. |
خاصية إضافية
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | قراءة | قناة النسيج التي ترتبط بها طبقة UV هذه. |
add_data(data)
إلحاق بيانات إحداثيات UV. يقبل list[Vector2], list[Vector3], list[FVector2], list[FVector3], أو list[FVector4]. جميع القيم تُخزن داخليًا كـ FVector4 مع تعيين المكونات غير المستخدمة إلى 0.0.
VertexElementVertexColor
يخزن قيم ألوان RGBA لكل رأس في النطاق 0–1.
from aspose.threed.entities import VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
Methods
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type ثابت على VertexElementType.VERTEX_COLOR.
VertexElementTangent
يخزن متجهات الظل لكل رأس أو لكل ركن، تُستخدم في عرض خريطة العادي.
from aspose.threed.entities import VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type ثابت على VertexElementType.TANGENT.
VertexElementBinormal
يخزن متجهات الباينورمال (البيتانجينت) لكل رأس أو لكل زاوية، مكملة VertexElementTangent لـ tangent-space normal mapping.
from aspose.threed.entities import VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type مُثَبَّت على VertexElementType.BINORMAL.
VertexElementSmoothingGroup
يخزن معرفات مجموعة التنعيم الصحيحة لكل مضلع. يتم تحميلها من ملفات OBJ التي تحتوي على s الإعلانات.
from aspose.threed.entities import VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type مُثَبَّت على VertexElementType.SMOOTHING_GROUP.
تعداد VertexElementType
يحدد الدور الدلالي لطبقة عنصر الرأس.
from aspose.threed.entities import VertexElementType| Methods | Methods |
|---|---|
NORMAL | متجهات السطح العادية. |
UV | إحداثيات UV للملمس. |
VERTEX_COLOR | لون RGBA لكل رأس. |
TANGENT | متجهات المماس لـ normal mapping. |
BINORMAL | متجهات الباينورمال (bitangent). |
SMOOTHING_GROUP | معرفات أعداد صحيحة لمجموعة التنعيم لكل مضلع. |
MATERIAL | فهرس المادة لكل مضلع. |
POLYGON_GROUP | فهرس تجميع المضلعات. |
VERTEX_CREASE | أوزان طية رؤوس التقسيم. |
EDGE_CREASE | أوزان طية حواف التقسيم. |
USER_DATA | بيانات مخصصة من قبل المستخدم. |
VISIBILITY | أعلام الرؤية لكل عنصر. |
SPECULAR | لون أو شدة الانعكاس اللامع. |
WEIGHT | أوزان الدمج لتقنية skinning. |
HOLE | أعلام الفتحات في المضلعات. |
تعداد MappingMode
يتحكم في أي بدائية هندسية يرتبط كل قيمة لعنصر الرأس.
from aspose.threed.entities import MappingMode| Methods | Methods |
|---|---|
CONTROL_POINT | قيمة واحدة لكل نقطة تحكم (قمة). |
POLYGON_VERTEX | قيمة واحدة لكل زاوية مضلع (قمة-وجه). |
POLYGON | قيمة واحدة لكل مضلع. |
EDGE | قيمة واحدة لكل حافة. |
ALL_SAME | قيمة واحدة تنطبق على كامل الشبكة. |
تعداد ReferenceMode
يتحكم في طريقة فهرسة مصفوفة البيانات.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
DIRECT | يتم الوصول إلى البيانات بشكل متسلسل دون مصفوفة فهارس منفصلة. |
INDEX | يتم الوصول إلى البيانات عبر مصفوفة فهارس منفصلة. |
INDEX_TO_DIRECT | مصفوفة الفهارس تُطابق كل بدائي تخطيط إلى موضع في مصفوفة البيانات. |
Methods
إرفاق طبقة عادية إلى شبكة (تعيين 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")إرفاق إحداثيات UV (تخطيط 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")