Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Reliable way to offset a mesh?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Reliable way to offset a mesh?


Chronological Thread 
  • From: Zesen Qian <>
  • To:
  • Subject: Re: [cgal-discuss] Reliable way to offset a mesh?
  • Date: Wed, 23 May 2018 09:41:11 -0400
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:LeJbDhOfpAnt7JWUMOYl6mtUPXoX/o7sNwtQ0KIMzox0Iv/5rarrMEGX3/hxlliBBdydt6ofzbKO+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebxlGiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0yRD+s7bpkSAXwhSgFOT438G/ZhM9tgqxFvB2vqAdyw5LNYIyPKPZyYr/RcNEcSGFcXshRTStBAoakYoQMEeUBJvhXr4/grFUVrBuxHw+sD/7oxz5JmHD2xrM10+I7HQHf3QwvBdQOvW/brNXwLqgSUOS1wLPUwjXEavNbwDHw45XGfBAmpPGDR7NwcczJxEkuEQPFlFSQppb/MzObzOQBq2eb7+t8VeKvlm4osBt9rSSoxscpkoXGmo0VxUrA9Sljx4Y1P9K4RUhmatCnCJtdrz+WO5dyT884QGxluDw2xqACtJKlZiQG1ZAqyh7ZZveaaYaH+AjjW/yUITpghHJqZra/hxGq/Eil0OL8V8203E9SripLjtXAr34N2wHX58WHUPd98UCh2TGA1wDX9O5IO1w7la3eK5I5w74wkIQcsVjbEyPohEn7iLWae0Yk9+Sy9ujqZqvqqoWBO4JwigzyKqEulda+AeQ8PAgORW+b+eGk2bzi40L5W6tFjvssnqnAsZDVP8Ibq7W2Aw9QyIkj6hK/Ay2639QfmHkLNEhFdw6fj4j1J1HOJ+j1Auuwg1u2lDdn3u3JPrz6AprRM3jDi6zhcK1m609czQoz1cpQ64hVCrEHOvLzW1X+uMbWDh8jYESJxf36AoB9yp8GQjDIRbSINbvb916O/OMmZeeWI5QEvS70bPkj6fmphnAwnRoRfLKiwIAMO0y/S/9pKkHcbXv3icoaCk8LuBA/Rarkkg6sSzlWMkS/RK86rgg6AYTuWZXOXY2rxqWA1SGTEZhfZ2QAAVeJRyS7P76YUusBPXrBavRqlSYJAOD4Gt0RkCq2vQq/8IJJa+/d+ykWr5XmjYEn6OjalBV0/jtxXZ3EjzO9Clpsl2ZNfAcYmbhlqBUkmFiG2Kl8xfdfEI4Lvq4bYkIBLZfZitdCJZXyVwbGJInbTV+nRpC+D2l0QItgnpkBZEFyH9jkhRfGjXKn

Thanks Mael, while this solves the last problem, a new one pumps up:

/home/riaqn/codes/cxx/offset.cxx:65:102: error: ‘manifold’ was not
declared in this scope
base<T>::Meshing::C3t3 c3t3 = CGAL::make_mesh_3<typename
base<T>::Meshing::C3t3>(domain, criteria, params::manifold());

I'm sure I included <CGAL/refine_mesh_3.h>, and params is CGAL::parameters.

Best,
Zesen

On Wed, May 23, 2018 at 9:36 AM, Mael Rouxel-Labbé
<>
wrote:
> Tags are used differently:
>
> C3T3 c3t3 = CGAL::make_mesh_3<C3T3>(domain, criteria, manifold());
>
>
> On 23/05/2018 15:28, Zesen Qian wrote:
>> OK so I just rewrote the program to use Mesh_3. One problem I
>> encountered is that I want to restrict the output mesh to be manifold,
>> but the named parameters doesn't seem to work. It told me:
>>
>> /home/riaqn/codes/cxx/offset.cxx:65:102: error: ‘manifold’ was not
>> declared in this scope
>> base<T>::Meshing::C3t3 c3t3 = CGAL::make_mesh_3<typename
>> base<T>::Meshing::C3t3>(domain, criteria,
>> manifold=params::manifold());
>>
>> it seems that there isn't such a named parameter in make_mesh_3's
>> signature?
>>
>> Best,
>> Zesen
>>
>>
>> On Wed, May 23, 2018 at 2:57 AM, Sebastien Loriot (GeometryFactory)
>> <>
>> wrote:
>>>
>>> On 05/22/2018 08:33 PM, Zesen Qian wrote:
>>>> Hi Sebastien,
>>>>
>>>> Thanks for this. I wrote the program myself and I'm using surface_mesh
>>>> instead of mesh_3. Question: Why will Mesh_3 be faster? From what I
>>>> understand this will not only generate facets but also cells inside
>>>> the shape? How will that accelerate the process?
>>> Mesh_3 code has been updated to take advantage of threads so it will be
>>> faster. Moreover, the code of Surface_mesh has not been updated for some
>>> time now because we are planning to replace it with the implementation of
>>> Mesh_3. If you put no constraints on the tetrahedra, only the constraints
>>> on
>>> surface facets will make the mesh work more.
>>>
>>> Sebastien.
>>>
>>>
>>>> And in particular, if I'm not interested in the cells, how should I
>>>> set the parameters concerning it? i.e., cell_radius_edge_ratio and
>>>> cell_size.
>>>>
>>>> Best,
>>>> Zesen
>>>>
>>>> On Tue, May 22, 2018 at 2:25 PM, Sebastien Loriot (GeometryFactory)
>>>> <>
>>>> wrote:
>>>>> Note that this PR : https://github.com/CGAL/cgal/pull/3043
>>>>> will bring some noticeable speed up as well as parallel mesh algorithm.
>>>>>
>>>>> Best,
>>>>>
>>>>> Sebastien.
>>>>>
>>>>>
>>>>> On 05/22/2018 07:18 PM, Zesen Qian wrote:
>>>>>>
>>>>>> Hi Sebastien,
>>>>>>
>>>>>> Sorry for keep spamming your inbox - but I found how to sample areas
>>>>>> differently based on variety. For future reference, the parameter
>>>>>> distance_bound constrols the max distance from every generated facet
>>>>>> to the surface. So when the same value applies to different areas, the
>>>>>> areas with more details will get sampled more.
>>>>>>
>>>>>> Thank you so much for the help!
>>>>>>
>>>>>> Best,
>>>>>> Zesen
>>>>>>
>>>>>> On Tue, May 22, 2018 at 11:11 AM, Zesen Qian
>>>>>> <>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Sebastien,
>>>>>>>
>>>>>>> I think I was mistaken - I tried it again and it seems that I don't
>>>>>>> have to do too much about the angle_bound - adjusting other parameters
>>>>>>> would suffice to give a decent result.
>>>>>>>
>>>>>>> However, it is indeed slow. One feature of my mesh is that it donsn't
>>>>>>> have to be evenly sampled - some areas require more details than
>>>>>>> others. Can I do some trick so that those area receive extra
>>>>>>> sampling, while other more monotone area get less, so I can save some
>>>>>>> processing time?
>>>>>>>
>>>>>>> Best,
>>>>>>> Zesen
>>>>>>>
>>>>>>> On Tue, May 22, 2018 at 10:26 AM, Zesen Qian
>>>>>>> <>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi Sebastien,
>>>>>>>>
>>>>>>>> Thanks for this. I don't know if that's a similiar thing, but I tried
>>>>>>>> https://doc.cgal.org/latest/Surface_mesher/
>>>>>>>> by a distance function(with AABB_tree and side_of_triangle). Seen
>>>>>>>> from
>>>>>>>> the source code of the plugin, it's very similar.
>>>>>>>>
>>>>>>>> To get a decent result it's quite slow. If I set the angular bound to
>>>>>>>> 90 degree(more than 30), the algorithm is not garanteed to
>>>>>>>> terminate(and indeed in my case). My mesh has some very thin layers
>>>>>>>> that's easy to be ignored by meshing, so I don't expect this method
>>>>>>>> to work.
>>>>>>>>
>>>>>>>> What I'm now trying is simply using the "solidify" modifier in
>>>>>>>> Blender, and fix the potential self-intersections using refining and
>>>>>>>> outer-hull operation, and then use boolean operation with the
>>>>>>>> original
>>>>>>>> mesh to get a offseted mesh. I'm using libigl to do these tasks.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Zesen
>>>>>>>>
>>>>>>>> On Tue, May 22, 2018 at 9:59 AM, Sebastien Loriot (GeometryFactory)
>>>>>>>> <>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> There is indeed nothing official in CGAL. However, in the Polyhedron
>>>>>>>>> demo we wrote a small plugin that is meshing the distance function
>>>>>>>>> to
>>>>>>>>> a
>>>>>>>>> mesh
>>>>>>>>> and the output is by construction guaranteed to be free from
>>>>>>>>> self-intersections. However sharp features are not correctly meshed
>>>>>>>>> if
>>>>>>>>> not protected.
>>>>>>>>>
>>>>>>>>> Go into 3D Surface Mesh Generation -> Offset meshing once having
>>>>>>>>> loaded
>>>>>>>>> a polyhedron.
>>>>>>>>>
>>>>>>>>> Source code is here:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/CGAL/cgal/blob/releases/CGAL-4.12-branch/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/Offset_meshing_plugin.cpp
>>>>>>>>>
>>>>>>>>> HTH,
>>>>>>>>>
>>>>>>>>> Sebastien.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 05/17/2018 07:44 PM, Zesen Qian wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Hi list,
>>>>>>>>>>
>>>>>>>>>> I have a triangulated, closed mesh which is free of any
>>>>>>>>>> degeneracies.
>>>>>>>>>> Is there any reliable way to offset this mesh? By reliable I mean
>>>>>>>>>> the
>>>>>>>>>> result mesh should be free of any degeneracies.
>>>>>>>>>>
>>>>>>>>>> I searched on Internet and there is simply not an library/program
>>>>>>>>>> available that can do this. I guess CGAL isn't capable of this
>>>>>>>>>> either,
>>>>>>>>>> but I believe people on this list should be familiar with this
>>>>>>>>>> topic
>>>>>>>>>> and maybe offer some comments.
>>>>>>>>>>
>>>>>>>>>> Thank you.
>>>>>>>>>>
>>>>>>>>>> Best,
>>>>>>>>>> Zesen
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You are currently subscribed to cgal-discuss.
>>>>>>>>> To unsubscribe or access the archives, go to
>>>>>>>>> https://sympa.inria.fr/sympa/info/cgal-discuss
>>>>>>>>>
>>>>>>>>>
>>>>> --
>>>>> You are currently subscribed to cgal-discuss.
>>>>> To unsubscribe or access the archives, go to
>>>>> https://sympa.inria.fr/sympa/info/cgal-discuss
>>>>>
>>>>>
>>> --
>>> You are currently subscribed to cgal-discuss.
>>> To unsubscribe or access the archives, go to
>>> https://sympa.inria.fr/sympa/info/cgal-discuss
>>>
>>>
>
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss
>
>



Archive powered by MHonArc 2.6.18.

Top of Page