How to use Boolean operations to achieve a certain goal

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

How to use Boolean operations to achieve a certain goal

Andrea Borsic
Dear All,

I am a new user of CGAL. I am interested in certain Boolean operations, which I understand can be performed with Nef Polyhedra or with the Corefinement kernel.

I have two separate triangulated, non self-intersecting, manifold surfaces.  These surfaces do intersect each other, and I am interested in getting the union of the two surfaces, where by union I intend the outer surfaces and also the inner surface that results from the fact the the two volumes intersect, and which is bound be the external surfaces. 

Can anyone please indicate me how this can be achieved? The union in CGAL removes the internal surfaces. I have tried to put them back by subtracting one surface from the other, but then I need an union of the result of the subtraction with one of the original meshes, and the union removes again any internal surface that derives from "joining" the two surfaces.

Any help on how to go about this is kindly appreciated. Thank you !

Best,

Andrea
Reply | Threaded
Open this post in threaded view
|

Re: How to use Boolean operations to achieve a certain goal

Sebastien Loriot (GeometryFactory)
Just to be sure, you'd be interested in getting a volume refinement, right?

Say you have 2 meshes of spheres. If the sphere are intersecting you'd
like to get 3 volumes?

If this is the case, this is something that cannot be represented by a
triangle mesh. You will need something like a linear cell complex:
https://doc.cgal.org/latest/Linear_cell_complex

It used to be possible to use the corefinement code to build such a
complex from two meshes but for only two meshes. I mean once the linear
cell complex has been built, you won't be able to add another mesh
directly.

More generally this can be done using Nef by not doing the volume
simplification, but will be more costly.

Sebastien.

On 06/13/2018 05:01 PM, Andrea Borsic wrote:

> Dear All,
>
> I am a new user of CGAL. I am interested in certain Boolean operations,
> which I understand can be performed with Nef Polyhedra or with the
> Corefinement kernel.
>
> I have two separate triangulated, non self-intersecting, manifold
> surfaces.  These surfaces do intersect each other, and I am interested
> in getting the union of the two surfaces, where by union I intend the
> outer surfaces and also the inner surface that results from the fact the
> the two volumes intersect, and which is bound be the external surfaces.
>
> Can anyone please indicate me how this can be achieved? The union in
> CGAL removes the internal surfaces. I have tried to put them back by
> subtracting one surface from the other, but then I need an union of the
> result of the subtraction with one of the original meshes, and the union
> removes again any internal surface that derives from "joining" the two
> surfaces.
>
> Any help on how to go about this is kindly appreciated. Thank you !
>
> Best,
>
> Andrea

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss