Thanks Alex,
I agree that this is a workaround for avoiding the complex faces in this case. However this isn't the only reason a face could be complex. I also don't think it's unreasonable to expect to be able to add and delete these faces without a segfault, it would actually be preferable if the add operation throws if it cannot be cleanly added.
Cheers,
Bruce
Hi,
The problem is caused by degenerate triangles with duplicate vertices.
It can be avoided by checking each face for duplicates:
if len(set(face)) != 3:
continue
With this check, there should be no need to delete anything.
Best,
Alex
> On 4. Oct 2021, at 17:35, Bruce Jones <bruce.jones@markforged.com> wrote:
>
> Hi all,
>
> I am facing an issue dealing with complex faces in openmesh via the python interface. I have a mesh I am loading via trimesh (hard requirement at this time), and using that to build an openmesh mesh. This mesh (and others i work with) is degenerate in the sense that it has complex faces, and trying to ignore that problem leads to the python process crashing (either hanging or segfault/bus error depending on the mesh). If i proactively try to delete the complex faces immediately after they are created, I get a seg fault. I have attached a minimum working example complete with degenerate STL, I would appreciate any assistance debugging this and/or working around it!
>
> Cheers,
> Bruce
>
> <benchy_fail.zip>_______________________________________________
> OpenMesh mailing list -- openmesh@lists.rwth-aachen.de
> To unsubscribe send an email to openmesh-leave@lists.rwth-aachen.de
> https://lists.rwth-aachen.de/postorius/lists/openmesh.lists.rwth-aachen.de