diff --git a/doxygen/examples/MeshResolveDegenerations.dox b/doxygen/examples/MeshResolveDegenerations.dox index 0746028634e5..a32832e615e4 100644 --- a/doxygen/examples/MeshResolveDegenerations.dox +++ b/doxygen/examples/MeshResolveDegenerations.dox @@ -8,6 +8,9 @@ Example of resolving degenerated faces - C \include MeshResolveDegenerations.dox.c +- Python +\include MeshResolveDegenerations.dox.py + */ \ No newline at end of file diff --git a/examples/python-examples/MeshModification.dox.py b/examples/python-examples/MeshModification.dox.py index b3d53c704da0..e976eaa12873 100644 --- a/examples/python-examples/MeshModification.dox.py +++ b/examples/python-examples/MeshModification.dox.py @@ -2,7 +2,7 @@ import meshlib.mrmeshpy as mrmeshpy -mesh = mrmeshpy.loadMesh("mesh.stl") +mesh = mrmeshpy.makeTorus() relax_params = mrmeshpy.MeshRelaxParams() relax_params.iterations = 5 diff --git a/examples/python-examples/MeshResolveDegenerations.dox.py b/examples/python-examples/MeshResolveDegenerations.dox.py new file mode 100644 index 000000000000..ea22fd9d8684 --- /dev/null +++ b/examples/python-examples/MeshResolveDegenerations.dox.py @@ -0,0 +1,18 @@ +import meshlib.mrmeshpy as mrmeshpy + +mesh = mrmeshpy.loadMesh("mesh.ctm") + +# You can set various parameters for the resolving process; see the documentation for more info +params = mrmeshpy.ResolveMeshDegenSettings() +# maximum permitted deviation +params.maxDeviation = 1e-5 * mesh.computeBoundingBox().diagonal() +# maximum length of edges to be collapsed +params.tinyEdgeLength = 1e-3 + +is_changed = mrmeshpy.resolveMeshDegenerations(mesh, params) + +if is_changed: + print("Mesh was changed, saving") + mrmeshpy.saveMesh(mesh, "mesh_fixed.ctm") +else: + print("Mesh was not changed") diff --git a/test_regression/test_doc_samples/test_doc_samples.py b/test_regression/test_doc_samples/test_doc_samples.py index aaf40b2d9136..06db010a81e0 100644 --- a/test_regression/test_doc_samples/test_doc_samples.py +++ b/test_regression/test_doc_samples/test_doc_samples.py @@ -32,7 +32,7 @@ 'output_meshes': ['meshA_icp.stl']}, id="MeshICP.dox.py"), pytest.param({'sample': "MeshLoadSave.dox.py", 'input_meshes': ['mesh.stl'], 'output_meshes': ['mesh.ply']}, id="MeshLoadSave.dox.py"), - pytest.param({'sample': "MeshModification.dox.py", 'input_meshes': ['mesh.stl'], + pytest.param({'sample': "MeshModification.dox.py", 'input_meshes': [], 'output_meshes': []}, id="MeshModification.dox.py"), pytest.param({'sample': "MeshOffset.dox.py", 'input_meshes': ['mesh.stl'], 'output_meshes': ['offsetMesh.stl']}, id="MeshOffset.dox.py"), @@ -43,6 +43,10 @@ 'output_meshes': ['noised_mesh.stl', 'denoised_mesh.stl']}, id="NoiseDenoiseExample.dox.py", marks=pytest.mark.bindingsV3), + pytest.param({'sample': "MeshResolveDegenerations.dox.py", 'input_meshes': ['mesh.ctm'], + 'output_meshes': ['mesh_fixed.ctm']}, + id="MeshResolveDegenerations.dox.py", + marks=pytest.mark.bindingsV3), pytest.param({'sample': "Numpy.dox.py", 'input_meshes': [], 'output_meshes': []}, id="Numpy.dox.py"), pytest.param(