Mesh

पैकेज: aspose.threed.entities (aspose-3d-foss 26.1.0)

Mesh बहु‑भुज ज्यामिति को नियंत्रण बिंदुओं (वर्टेक्स स्थितियों) की सूची और बहु‑भुज चेहरों की सूची के रूप में संग्रहीत करता है। प्रत्येक बहु‑भुज चेहरा शून्य‑आधारित सूचकांकों की सूची है जो

नियंत्रण बिंदुओं की सरणी में जाता है। चेहरे त्रिभुज, चतुर्भुज, या उच्च‑अरिटी बहु‑भुज हो सकते हैं। अतिरिक्त प्रति‑वर्टेक्स डेटा; सामान्य, यूवी निर्देशांक, वर्टेक्स रंग; संलग्न किया जाता है जैसा कि VertexElement परतें।.

class Mesh(Geometry):

Methods

A3DObjectSceneObjectEntityGeometryMesh


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 सभी हैं गुण; उन्हें बिना कोष्ठकों के एक्सेस करें।.

MethodsMethodsMethodsMethods
control_pointslist[Vector4]पढ़ेंVertex पोजीशन एरे। प्रत्येक प्रविष्टि एक है Vector4(x, y, z, w) जहाँ w है 1.0 पोजीशन डेटा के लिए।. एक कॉपी लौटाता है — लौटाए गए सूची में जोड़ें नहीं। उपयोग करें mesh._control_points.append(v) वर्टिसेज़ जोड़ने के लिए (ज्ञात सीमा; सार्वजनिक म्यूटेशन API अभी उपलब्ध नहीं है)।.
polygon_countintपढ़ेंइस मेष पर परिभाषित बहुभुज चेहरों की संख्या।.
polygonslist[list[int]]पढ़ेंसभी फेस परिभाषाएँ सूचकांक सूचियों की एक सूची के रूप में। प्रत्येक आंतरिक सूची वर्टेक्स सूचकांकों को रखती है (में control_points) एक फेस के लिए।.
edgeslist[int]पढ़ेंकच्चा एज इंडेक्स डेटा। मुख्यतः आंतरिक उपयोग और उन्नत टोपोलॉजी क्वेरीज़ के लिए।.
vertex_elementslist[VertexElement]पढ़ेंइस मेष से वर्तमान में जुड़ी सभी वर्टेक्स एलिमेंट लेयर्स (नॉर्मल्स, UVs, रंग, आदि)।.
visibleboolRead/WriteMethods False, मेष उन व्यूअर्स में छिपा है जो दृश्यता का सम्मान करते हैं।.
cast_shadowsboolRead/Writeक्या यह मेष उन रेंडरर्स में छायाएँ डालता है जो शैडो मैप्स का समर्थन करते हैं।.
receive_shadowsboolRead/Writeक्या यह मेष अन्य छाया‑निर्माण ज्यामिति से छायाएँ प्राप्त करता है।.

Methods

create_polygon(*indices)

वर्टेक्स सूचकांकों को क्रम में प्रदान करके एक नया बहुभुज फेस परिभाषित करें। सूचकांक स्थितियों को संदर्भित करते हैं। control_points. त्रिभुज, चतुर्भुज और n‑गॉन के लिए तीन या अधिक सूचकांकों को स्वीकार करता है।.

MethodsMethodsMethods
*indicesintवर्टेक्स सूचकांक तर्क विंडिंग क्रम में (आमतौर पर बाहर से देखे जाने पर विपरीत‑घड़ी दिशा में) होते हैं।.

वापसी: 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)          # 2

triangulate()

एक नया लौटाएँ 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)      # 2

to_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 को संलग्न करने के लिए करें।.

MethodsMethodsMethods
element_typeVertexElementTypeइस layer में रखे जाने वाले डेटा का प्रकार (उदाहरण के लिए,., VertexElementType.NORMAL).
mapping_modeMappingModeडेटा ज्यामिति से कैसे मैप होता है: CONTROL_POINT, POLYGON_VERTEX, POLYGON, आदि।.
reference_modeReferenceModeइंडेक्स कैसे उपयोग किए जाते हैं: 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 कॉर्डिनेट लेयर जोड़ें। यह टेक्सचर कॉर्डिनेट डेटा संलग्न करने की पसंदीदा विधि है।.

MethodsMethodsMethods
uv_mappingTextureMappingUV चैनल का उद्देश्य: DIFFUSE, SPECULAR, NORMAL, AMBIENT, आदि।.
mapping_modeMappingModeUVs ज्यामिति तत्वों पर कैसे मैप होते हैं।.
reference_modeReferenceModeइंडेक्सिंग मोड: 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,
)

संबंधित देखें

 हिन्दी