PolygonModifier — Aspose.3D Python API Reference
पैकेज: aspose.threed.entities (aspose-3d-foss 26.1.0)
PolygonModifier एक स्थैतिक उपयोगिता वर्ग है जो बहुभुज टेसलेशन संचालन प्रदान करता है on Mesh और Scene ऑब्जेक्ट्स। सभी मेथड्स क्लास मेथड्स हैं; PolygonModifier कोई भी सीधे इंस्टैंशिएट नहीं किया जाता।.
from aspose.threed.entities import PolygonModifierमुख्य संचालन त्रिकोणीयकरण है: क्वाड और n‑गॉन को इयर‑क्लिपिंग द्वारा त्रिकोणों में बदलना। यह उन स्वरूपों में निर्यात करने से पहले आवश्यक है जो केवल त्रिकोणीय ज्यामिति स्वीकार करते हैं (STL, कुछ glTF पाइपलाइन)।.
triangulate(arg) — एक को त्रिकोणित करें Mesh
एक नया लौटाएँ Mesh जिसमें प्रत्येक बहुभुज को त्रिकोणों में परिवर्तित किया गया है। मूल मेष में कोई परिवर्तन नहीं किया गया है। वर्टेक्स तत्व लेयर (नॉर्मल्स, UVs, रंग) को नए मेष में कॉपी किया जाता है।.
@staticmethod
def triangulate(mesh: Mesh) -> Meshmesh | Mesh | त्रिकोणित करने के लिए स्रोत मेष।. |
वापसी: Mesh — केवल त्रिकोणीय बहुभुजों वाला नया मेष।.
from aspose.threed.entities import Mesh, PolygonModifier
from aspose.threed.utilities import Vector4
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) # one quad
tri_mesh = PolygonModifier.triangulate(mesh)
print(tri_mesh.polygon_count) # 2triangulate(scene) — एक में सभी मेषों को त्रिकोणित करें Scene
पूरे सीन ग्राफ़ को ट्रैवर्स करें और प्रत्येक को त्रिकोणित करें Mesh इकाई को उसी स्थान पर। इस कॉल के बाद, सीन में कोई भी गैर-त्रिकोणीय बहुभुज नहीं रहेगा।.
@staticmethod
def triangulate(scene: Scene) -> Nonescene | Scene | वह सीन जिसके मेष इकाइयों को त्रिकोणित किया जाएगा।. |
वापसी: None
from aspose.threed import Scene
from aspose.threed.entities import PolygonModifier
scene = Scene.from_file("model_with_quads.obj")
PolygonModifier.triangulate(scene)
scene.save("model_triangulated.stl")triangulate(control_points, polygon) — एक बहुभुज को त्रिकोणित करें
निम्न‑स्तर ओवरलोड: नियंत्रण बिंदुओं की सूची और एक बहुभुज बनाते हुए वर्टेक्स इंडेक्स की सूची दी गई हो, तो फैन त्रिकोणीयकरण द्वारा उत्पन्न त्रिकोण इंडेक्स त्रिकों की सूची लौटाता है।.
@staticmethod
def triangulate(
control_points: list[Vector4],
polygon: list[int],
) -> list[list[int]]control_points | list[Vector4] | पूर्ण शीर्ष बिंदु स्थिति सरणी।. |
polygon | list[int] | इंडेक्सेस में control_points वह बहुभुज परिभाषित करता है जिसे विभाजित किया जाना है।. |
रिटर्न्स: list[list[int]] — एक सूची [i, j, k] त्रिपलेट्स, प्रत्येक एक आउटपुट त्रिभुज का प्रतिनिधित्व करता है।.
from aspose.threed.entities import PolygonModifier
from aspose.threed.utilities import Vector4
pts = [
Vector4(0.0, 0.0, 0.0, 1.0),
Vector4(1.0, 0.0, 0.0, 1.0),
Vector4(1.0, 1.0, 0.0, 1.0),
Vector4(0.0, 1.0, 0.0, 1.0),
]
quad_indices = [0, 1, 2, 3]
triangles = PolygonModifier.triangulate(pts, quad_indices)
print(triangles) # e.g. [[0, 1, 2], [0, 2, 3]]triangulate(control_points, polygons, generate_normals, normals_out) — वैकल्पिक नॉर्मल जेनरेशन के साथ बैच त्रिकोणित करें
बहुभुज इंडेक्स सूचियों की सूची को बैच-त्रिकोणित करें। वैकल्पिक रूप से प्रत्येक आउटपुट त्रिभुज के लिए फेस नॉर्मल्स की गणना करें और उन्हें जोड़ें normals_out.
@staticmethod
def triangulate(
control_points: list[Vector4],
polygons: list[list[int]],
generate_normals: bool = False,
normals_out: list[Vector3] | None = None,
) -> list[list[int]]control_points | list[Vector4] | शीर्ष बिंदु स्थिति सरणी।. |
polygons | list[list[int]] | बहुभुज परिभाषाओं की एक सूची, प्रत्येक शीर्ष इंडेक्स की सूची है।. |
generate_normals | bool | True, प्रत्येक आउटपुट त्रिभुज के लिए एक फेस नॉर्मल की गणना करें।. |
normals_out | `list[Vector3] | None` |
रिटर्न्स: list[list[int]] — सभी आउटपुट त्रिभुज त्रिपलेट्स क्रम में।.
from aspose.threed.entities import PolygonModifier
from aspose.threed.utilities import Vector4, Vector3
pts = [
Vector4(0, 0, 0, 1), Vector4(1, 0, 0, 1),
Vector4(1, 1, 0, 1), Vector4(0, 1, 0, 1),
]
polys = [[0, 1, 2, 3]]
normals: list[Vector3] = []
tris = PolygonModifier.triangulate(pts, polys, True, normals)
print(len(tris)) # 2
print(len(normals)) # 2