Subject: CGAL users discussion list
List archive
- From: Sebastien Loriot <>
- To:
- Subject: Re: [cgal-discuss] Repair a self-intersecting triangle mesh
- Date: Wed, 19 Jul 2023 13:35:19 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23: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 aXZi4yJrIFXhHMdyfpdRkM=
- Ironport-hdrordr: A9a23:Q8Htlq+/XOOkUc7p11xuk+D7I+orL9Y04lQ7vn2ZOiYlFPBw8P re4MjztCWE9Qr5PUtLpTnuAtjjfZqxz+8P3WBVB8bZYOCEghrMEGgB1/qA/9SIIUSXnY5gPO VbAtBD4bXLbGSS5vyKhzVQfexQueVvvJrY4ds2DE0AceipUcxdBstCZTpz23cZeDV7
- Ironport-phdr: A9a23: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 JULQ75fElcyE6FCYnk=
- Ironport-sdr: 64b7ca7a_tPhcr5isLcsj51cd3zCDhll9G1sJLGW64SXwYGM4+eTsdQR vWPwsLZyDFCPZrNzUo5msFKlyuth3VTCbpMKebA==
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+.