Mesh
पैकेज: aspose.threed.entities (aspose-3d-foss 26.1.0)
Mesh बहु‑भुज ज्यामिति को नियंत्रण बिंदुओं (वर्टेक्स स्थितियों) की सूची और बहु‑भुज चेहरों की सूची के रूप में संग्रहीत करता है। प्रत्येक बहु‑भुज चेहरा शून्य‑आधारित सूचकांकों की सूची है जो
नियंत्रण बिंदुओं की सरणी में जाता है। चेहरे त्रिभुज, चतुर्भुज, या उच्च‑अरिटी बहु‑भुज हो सकते हैं। अतिरिक्त प्रति‑वर्टेक्स डेटा; सामान्य, यूवी निर्देशांक, वर्टेक्स रंग; संलग्न किया जाता है जैसा कि VertexElement परतें।.
class Mesh(Geometry):Methods
A3DObject → SceneObject → Entity → Geometry → Mesh
Methods
शुरुआत से एकल त्रिभुज मेष बनाएं:
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4
# Create the mesh and add three vertex positions
# IMPORTANT: control_points returns a copy of the internal list.
# Append to _control_points directly — appending to control_points discards the vertex.
# This is a known library limitation; a public mutation API does not yet exist.
mesh = Mesh()
mesh._control_points.append(Vector4(0.0, 0.0, 0.0, 1.0)) # vertex 0
mesh._control_points.append(Vector4(1.0, 0.0, 0.0, 1.0)) # vertex 1
mesh._control_points.append(Vector4(0.5, 1.0, 0.0, 1.0)) # vertex 2
# Define one triangle face using vertex indices
mesh.create_polygon(0, 1, 2)
# Attach to a scene and save
scene = Scene()
scene.root_node.create_child_node("triangle", mesh)
scene.save("triangle.stl")एक चतुर्भुज मेष बनाएं और निर्यात से पहले उसे त्रिकोणित करें:
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4
mesh = Mesh()
# Four corners of a unit square in the XZ plane
# Use _control_points to mutate the backing list (control_points returns a copy)
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))
# One quad face
mesh.create_polygon(0, 1, 2, 3)
print(f"Polygons before triangulate: {mesh.polygon_count}") # 1
triangulated = mesh.triangulate()
print(f"Polygons after triangulate: {triangulated.polygon_count}") # 2
scene = Scene()
scene.root_node.create_child_node("quad", triangulated)
scene.save("quad.glb")Methods
control_points, polygon_count, polygons, edges, और vertex_elements सभी हैं गुण; उन्हें बिना कोष्ठकों के एक्सेस करें।.
| Methods | Methods | Methods | Methods |
|---|---|---|---|
control_points | list[Vector4] | पढ़ें | Vertex पोजीशन एरे। प्रत्येक प्रविष्टि एक है Vector4(x, y, z, w) जहाँ w है 1.0 पोजीशन डेटा के लिए।. एक कॉपी लौटाता है — लौटाए गए सूची में जोड़ें नहीं। उपयोग करें mesh._control_points.append(v) वर्टिसेज़ जोड़ने के लिए (ज्ञात सीमा; सार्वजनिक म्यूटेशन API अभी उपलब्ध नहीं है)।. |
polygon_count | int | पढ़ें | इस मेष पर परिभाषित बहुभुज चेहरों की संख्या।. |
polygons | list[list[int]] | पढ़ें | सभी फेस परिभाषाएँ सूचकांक सूचियों की एक सूची के रूप में। प्रत्येक आंतरिक सूची वर्टेक्स सूचकांकों को रखती है (में control_points) एक फेस के लिए।. |
edges | list[int] | पढ़ें | कच्चा एज इंडेक्स डेटा। मुख्यतः आंतरिक उपयोग और उन्नत टोपोलॉजी क्वेरीज़ के लिए।. |
vertex_elements | list[VertexElement] | पढ़ें | इस मेष से वर्तमान में जुड़ी सभी वर्टेक्स एलिमेंट लेयर्स (नॉर्मल्स, UVs, रंग, आदि)।. |
visible | bool | Read/Write | Methods False, मेष उन व्यूअर्स में छिपा है जो दृश्यता का सम्मान करते हैं।. |
cast_shadows | bool | Read/Write | क्या यह मेष उन रेंडरर्स में छायाएँ डालता है जो शैडो मैप्स का समर्थन करते हैं।. |
receive_shadows | bool | Read/Write | क्या यह मेष अन्य छाया‑निर्माण ज्यामिति से छायाएँ प्राप्त करता है।. |
Methods
create_polygon(*indices)
वर्टेक्स सूचकांकों को क्रम में प्रदान करके एक नया बहुभुज फेस परिभाषित करें। सूचकांक स्थितियों को संदर्भित करते हैं। control_points. त्रिभुज, चतुर्भुज और n‑गॉन के लिए तीन या अधिक सूचकांकों को स्वीकार करता है।.
| Methods | Methods | Methods |
|---|---|---|
*indices | int | वर्टेक्स सूचकांक तर्क विंडिंग क्रम में (आमतौर पर बाहर से देखे जाने पर विपरीत‑घड़ी दिशा में) होते हैं।. |
वापसी: None
mesh = Mesh()
# ... populate control_points ...
mesh.create_polygon(0, 1, 2) # triangle
mesh.create_polygon(0, 1, 2, 3) # quad
print(mesh.polygon_count) # 2triangulate()
एक नया लौटाएँ Mesh जहाँ प्रत्येक बहुभुज को फैन ट्रायएंगुलेशन का उपयोग करके त्रिभुजों में विभाजित किया गया है। मूल मेष में कोई परिवर्तन नहीं किया गया है। यह उन फ़ॉर्मैट्स में निर्यात करने से पहले उपयोगी है जिनके लिए केवल त्रिभुज‑आधारित ज्यामिति आवश्यक होती है (जैसे STL या कुछ glTF पाइपलाइन)।.
वापसी: Mesh; केवल त्रिभुजों वाला नया मेष।.
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4
mesh = Mesh()
# Use _control_points to mutate the backing list (control_points returns a copy)
for v in [(0,0,0), (1,0,0), (1,1,0), (0,1,0)]:
mesh._control_points.append(Vector4(*v, 1.0))
mesh.create_polygon(0, 1, 2, 3) # one quad
tri_mesh = mesh.triangulate()
print(tri_mesh.polygon_count) # 2to_mesh()
इसे लौटाएँ Mesh के रूप में Mesh इंस्टेंस। के लिए Mesh ऑब्जेक्ट्स के लिए यह एक पहचान ऑपरेशन है (वापस करता है self). पर परिभाषित Geometry base class ताकि सामान्य के साथ काम करते समय एक समान रूपांतरण इंटरफ़ेस प्रदान किया जा सके Geometry संदर्भ।.
वापसी: Mesh
from aspose.threed.entities import Geometry
def ensure_mesh(geom: Geometry):
return geom.to_mesh()create_element(element_type, mapping_mode, reference_mode)
एक नया जोड़ें VertexElement निर्दिष्ट प्रकार का layer मेष में जोड़ें। इसका उपयोग normals, tangents, binormals, vertex colours, और smoothing groups को संलग्न करने के लिए करें।.
| Methods | Methods | Methods |
|---|---|---|
element_type | VertexElementType | इस layer में रखे जाने वाले डेटा का प्रकार (उदाहरण के लिए,., VertexElementType.NORMAL). |
mapping_mode | MappingMode | डेटा ज्यामिति से कैसे मैप होता है: CONTROL_POINT, POLYGON_VERTEX, POLYGON, आदि।. |
reference_mode | ReferenceMode | इंडेक्स कैसे उपयोग किए जाते हैं: DIRECT या INDEX_TO_DIRECT. |
रिटर्न्स: VertexElement
from aspose.threed.entities import Mesh, VertexElementType, MappingMode, ReferenceMode
from aspose.threed.utilities import Vector4
mesh = Mesh()
# Use _control_points to mutate the backing list (control_points returns a copy)
mesh._control_points.append(Vector4(0, 0, 0, 1))
mesh._control_points.append(Vector4(1, 0, 0, 1))
mesh._control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)
normal_element = mesh.create_element(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT,
)create_element_uv(uv_mapping, mapping_mode, reference_mode)
मेष में एक UV कॉर्डिनेट लेयर जोड़ें। यह टेक्सचर कॉर्डिनेट डेटा संलग्न करने की पसंदीदा विधि है।.
| Methods | Methods | Methods |
|---|---|---|
uv_mapping | TextureMapping | UV चैनल का उद्देश्य: DIFFUSE, SPECULAR, NORMAL, AMBIENT, आदि।. |
mapping_mode | MappingMode | UVs ज्यामिति तत्वों पर कैसे मैप होते हैं।. |
reference_mode | ReferenceMode | इंडेक्सिंग मोड: DIRECT या INDEX_TO_DIRECT. |
रिटर्न्स: VertexElementUV
from aspose.threed.entities import Mesh, TextureMapping, MappingMode, ReferenceMode
mesh = Mesh()
# ... define control_points and polygons ...
uv_element = mesh.create_element_uv(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT,
)