3D Voronoi fracture

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

3D Voronoi fracture

KyonInsane
Hi All,

I am struggling with a project that wants to fracture a 3D model (surface
mesh) in to convex pieces using 3d voronoi. I know that we can use boolean
operations to cut meshes. And I have read the example using LLC to get
finite Voronoi cells given set of points.

My approach is to generate a set of points inside the surface mesh, and use
the points to create Voronoi cells, and with each cell, perform a boolean
intersection with the mesh to get all the fractures.

The questions are :
0. What is the proper way to convert each Voronoi cell to surface mesh?
Given all its points, I am thinking just use convex hull functions that CGAL
provided.
1. How do I use all cells (including the infinite part) to perform boolean
operation with mesh? (do I need nef_polyhedron for the infinite part? if so,
how am I supposed to do convert LLC to nef_polyhedron?)
or
2. Is it possible, with bounding box of the mesh, create Voronoi cells that
are all bounded(finite), so I can use to perform boolean operation?

Any help is appreciated!

Best regards,
David



--
Sent from: http://cgal-discuss.949826.n4.nabble.com/

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


Reply | Threaded
Open this post in threaded view
|

Re: 3D Voronoi fracture

Sebastien Loriot (GeometryFactory)


On 8/14/19 5:44 PM, KyonInsane wrote:

> Hi All,
>
> I am struggling with a project that wants to fracture a 3D model (surface
> mesh) in to convex pieces using 3d voronoi. I know that we can use boolean
> operations to cut meshes. And I have read the example using LLC to get
> finite Voronoi cells given set of points.
>
> My approach is to generate a set of points inside the surface mesh, and use
> the points to create Voronoi cells, and with each cell, perform a boolean
> intersection with the mesh to get all the fractures.
>
> The questions are :
> 0. What is the proper way to convert each Voronoi cell to surface mesh?
> Given all its points, I am thinking just use convex hull functions that CGAL
> provided.

For a first shoot, using the Convex hull code is the simplest solution.

> 1. How do I use all cells (including the infinite part) to perform boolean
> operation with mesh? (do I need nef_polyhedron for the infinite part? if so,
> how am I supposed to do convert LLC to nef_polyhedron?)

That part might be a bit tricky. It would be easier if you generate some
points outside your mesh so that the convex hull of those points
contains the mesh. Simplest candidate are the corner of the bbox of the
mesh.

If you cannot add the outside points, you should clip the finite
Voronoi cell using the bbox of the mesh to make things simpler.

> or
> 2. Is it possible, with bounding box of the mesh, create Voronoi cells that
> are all bounded(finite), so I can use to perform boolean operation?
>
I remember that one student from Monique was writing some code to get
the clipped dual of a Voronoi cell but I don't remember what was the
outcome of this code. Monique, do you remember?

Sebastien.

> Any help is appreciated!
>
> Best regards,
> David
>
>
>
> --
> Sent from: http://cgal-discuss.949826.n4.nabble.com/
>

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


Reply | Threaded
Open this post in threaded view
|

Re: 3D Voronoi fracture

teillaud
Administrator
----- Le 2 Sep 19, à 8:51, Sebastien Loriot (GeometryFactory) [hidden email] a écrit :

> On 8/14/19 5:44 PM, KyonInsane wrote:

>> 2. Is it possible, with bounding box of the mesh, create Voronoi cells that
>> are all bounded(finite), so I can use to perform boolean operation?
>>
> I remember that one student from Monique was writing some code to get
> the clipped dual of a Voronoi cell but I don't remember what was the
> outcome of this code. Monique, do you remember?

Hi,
I don't quite remember but I am afraid that the task was never completed.
The code is public
https://github.com/CGAL/cgal-public-dev/tree/Delaunay_triangulation_3-add_vertex_dual-torgonsky/Triangulation_3

Best,
--
Monique Teillaud
https://members.loria.fr/Monique.Teillaud/
INRIA Nancy - Grand Est, LORIA
Institut National de Recherche en Informatique et Automatique

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