Pascal Ognibene
Pascal Ognibene

Reputation: 111

Cutting an open Polyhedron3 with another open Polyhedron3

Given 2 open Polyhedron3 made of triangles in CGAL, I want to cut the first one with the second one. That is, all intersecting triangle facets from poly2 should cut facets from poly1 and create new edges (and faces) in poly1 following the path of intersection. In the end, I need the list of edges/half edges which are part of the intersection path.

I'm using a typedef CGAL::Simple_cartesian Kernel.

While this looks like a boolean operation, it's not because there's no 'inside' or 'outside' for open meshes. The way I tried to implement it is:

My algorithm sorts of works, but I sometimes have problems : path not closed, small numerical accuracy problem, and it's not very fast.

So here's (at last) my question : what would be the recommended way to implement such an operation in a robust way ? Which kernel would you recommend?

Upvotes: 1

Views: 253

Answers (1)

Pascal Ognibene
Pascal Ognibene

Reputation: 111

Following sloriot comment, I've spent some time playing with the code of the CGAL polyhedron demo. Indeed it contains a plugin corefinement which does what I want. I've not finished integrating all changes in my own code base but I believe I can mark this question as answered.

All thanks to SLoriot for his suggestion!

Pascal

Upvotes: 0

Related Questions