Subject: CGAL users discussion list
List archive
- From: Giles Puckett <>
- To:
- Subject: Re: [cgal-discuss] Repair a self-intersecting triangle mesh
- Date: Thu, 20 Jul 2023 06:25:56 +1000
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23:QqC3PqyakzAQrIojgXZ6t+eaxCrEfRIJ4+MujC+fZmUNrF6WrkUGy TMcXT2GbPncYWLyfdFyad+1900OvJHTmN9qHlc+/C00HyNBpPSeCIXCJC8cHc8ywu4v7a5Dx 59DAjUVBJlsFhcwnj/0bv676yMUOZigHtLUEPTDNj16WThqQSIgjQMLs+Mii+aEu/Dga++2k Y20+5S31GONgWYuaTpLsvPb8nuDgdyp0N8mlg1mDRx0lAKG/5UlJMp3Db28KXL+Xr5VEoaSL woU5Ojklo9x105F5uKNyt4XQGVTKlLhFVHmZk5tZkSXqkMqShrec0oMHKF0hU9/011llvgtk 48V7cTYpQ0BZsUgk8xFO/VUO30lZ/UeoNcrLFDn2fF/wXEqfFOxzNs2BXkyPLFG98d4HG5xr 98IJmkkO0Xra+KemNpXS8Ff35xldY+yetJBjxmMzxmAV6pgGMySBfyRtZkBjG5YasNmRJ4yY +IWaD5idwzoYhxJN0tRDp8i2u617pX6W2EA+QzN9fRmvAA/yiQvgZbdGsLYSOfVXNpkt0uKt HiY9E32V0Ry2Nu3jGDtHmiXruTAlCe+VIMJH6Cj7dZrhkeSzyodEnUruUCT+KPlzBfiCpQGc BxSo3p3xUQvyHGWohDGd0XQiBa5UtQ0ArK8z8VSBNmx95fp
- Ironport-hdrordr: A9a23:cYYmdatwHTffVv7/IOXa6I/Z7skCjIMji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJhGo6H6BEDgewKlyXcR2+ks1NiZLW/bUQeTXeRfBOjZskTd8k/Fh4xgPM 5bGsATZ7zN5DBB/LzHCWKDYrEdKbe8gcSVbKrlvgVQZDAvT5slwxZyCw6dHEEzbA5aBaAhHJ 7ZwsZcvTKvdVkec8z+XxA+Lpz+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G CAuQ3k4aeIte2913bnphruxqUTvOGk5spIBcSKhMRQAjLwijywbIAkYLGGtCBdmpDf1L5/+u Ojnz4Qe+BIr1/BdGC8phXgnyP61iw11nPkwViExVP+vM3QXlsBeoB8rLMcViGcx1srvdl63q 4O9XmerYBrARTJmzm4z8TUVittilG/rRMZ4KMuZkRkIMcjgYJq3MQiFQJuYd499RvBmfYa+T xVfYrhDPU/SyLlU5mWhBgh/PWcGlAIWjecQlJHnsCJ2xVfgXgR9Tp6+CUlpAZ+yHsMceg52w 36CNUUqFhvdL5nUUsvPpZzfSLwMB27fS7x
- Ironport-phdr: A9a23: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
- Ironport-sdr: 64b846db_ixdR3rQnzPkb+NqNxwaZCtZswUh+26Tb0xMhC28RMtJKmyq EEOaB4nOlg5/0RmPGMCgFq4xViYUl6nXTXVL8sA==
Thanks Sebastien and Bruno,
I flipped the normals back on Bruno's output and all was good. I'll look at incorporating those functions later.
The problems of trying to handle arbitrary input :-)
Regards,
G.
On 19/07/2023 9:35 pm, Sebastien Loriot ( via cgal-discuss Mailing List) wrote:
If you want to get the same output as Bruno (but with the correct orientation ;) ), you can use the upcoming autorefine function like in this example:
https://github.com/sloriot/cgal/blob/PMP-BF_autorefine/Polygon_mesh_processing/examples/Polygon_mesh_processing/soup_autorefinement.cpp
The code is robust and has been tested on the full 10k models of
Thingi10k dataset without any issue.
However, this is not a magic tool. This will only refine the self-intersecting triangles. Luckily in your case, that was the only issue.
Extra filtering of triangles will need some extra care, as in general
such a technique creates non-manifold meshes.
Best,
Sebastien.
On 7/19/23 13:11, Giles Puckett wrote:
Attached here as an OFF file.
G.
On 19/07/2023 5:22 pm, Sebastien Loriot ( via cgal-discuss Mailing List) wrote:Could you share the mesh?
Best,
Sebastien.
On 7/19/23 09:15, Giles Puckett wrote:
Thanks Sebastien,
Unfortunately remove_self_intersections returns false (and the mesh is unchanged, still returning the same self intersections as before). This is with CGAL 5.5.1, if anything has changed since.
G.
On 19/07/2023 3:54 pm, Sebastien Loriot ( via cgal-discuss Mailing List) wrote:Hello,
you can try CGAL::Polygon_mesh_processing::experimental::remove_self_intersections()
provided by CGAL/Polygon_mesh_processing/repair_self_intersections.h.
If you only have local self-intersection, it usually works very well.
For listing all intersecting triangles use `self_intersection()`
https://doc.cgal.org/latest/Polygon_mesh_processing/group__PMP__intersection__grp.html#ga6c5bed399d14ddbba820ce50d3145712
HTH,
Sebastien.
On 7/19/23 07:04, Giles Puckett wrote:
Hello all,
I have a triangle mesh that contains self-intersections (PMP::does_self_intersect returns true) but it is otherwise manifold. Is there an easy way to repair these meshes?
If not, would it work to enumerate all the self-intersecting triangles, delete them from the mesh, and fill the holes left behind? Is there a good way to do this, or would some other method work better?
I suspect that the affected area is very small, so gross physical distortion is unlikely to result.
- [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Sebastien Loriot, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Sebastien Loriot, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Bruno Levy, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Sebastien Loriot, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Sebastien Loriot, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Giles Puckett, 07/19/2023
- Re: [cgal-discuss] Repair a self-intersecting triangle mesh, Sebastien Loriot, 07/19/2023
Archive powered by MHonArc 2.6.19+.