How to generate 3D mesh that preserve the input surface elements exactly?

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

How to generate 3D mesh that preserve the input surface elements exactly?

rdzhao
Hi all,

I'm working on a project that requires 3D mesh generation procedures that
preserves exactly the input surface elements, in the sense that all the
boundary vertices, edges, and triangles are exactly the same with the input
surface.

I looked through the manual, but there are no sections discussing how to
realize this.

Anyone can help?

Thank you so much!
Rundong



--
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: How to generate 3D mesh that preserve the input surface elements exactly?

Sebastien Loriot (GeometryFactory)
As of CGAL 5.0, this is not possible.

Sebastien.

On 12/2/19 12:48 AM, rdzhao wrote:

> Hi all,
>
> I'm working on a project that requires 3D mesh generation procedures that
> preserves exactly the input surface elements, in the sense that all the
> boundary vertices, edges, and triangles are exactly the same with the input
> surface.
>
> I looked through the manual, but there are no sections discussing how to
> realize this.
>
> Anyone can help?
>
> Thank you so much!
> Rundong
>
>
>
> --
> 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: How to generate 3D mesh that preserve the input surface elements exactly?

Marc Alexa
I think it should be added that, in general, this is not necessarily possible. Not every closed triangulated surface admits a dissection into tetrahedra — the counterexamples can be simple ( https://en.wikipedia.org/wiki/Schönhardt_polyhedron ). 

Deciding if a triangulation into tetrahedra exists is NP hard. So the idea of computing a triangulation (if it exists) won’t be feasible. 

The way out is to allow either additional points in the interior of the shape, which would preserve the boundary mesh exactly. I believe it is not clear if this will always work. Alternatively, you may allow additional points on the piecewise linear elements of the mesh (or both). In this case at least the geometry of the boundary mesh is unchanged. This strategy is known to always work, albeit at the possible expense of many new elements (possible exponentially many, depending on what you ask for). 

You could use CGAL to implement one of the strategies yourself. There are some comparably simple strategies for splitting edges that could be implemented without too much hassle, if you feel comfortably doing so. It will be difficult if you ask for quality tetrahedra or few additional vertices. 

Outside CGAL there is tetgen, which specializes in this area. 

-Marc





On 2. Dec 2019, at 10:09, Sebastien Loriot (GeometryFactory) <[hidden email]> wrote:

As of CGAL 5.0, this is not possible.

Sebastien.

On 12/2/19 12:48 AM, rdzhao wrote:
Hi all,
I'm working on a project that requires 3D mesh generation procedures that
preserves exactly the input surface elements, in the sense that all the
boundary vertices, edges, and triangles are exactly the same with the input
surface.
I looked through the manual, but there are no sections discussing how to
realize this.
Anyone can help?
Thank you so much!
Rundong
--
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