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 13:45:47 -0400
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:xylEjR3GslWwThsTsmDT+DRfVm0co7zxezQtwd8ZseIULPad9pjvdHbS+e9qxAeQG9mDsLQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHPbQhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLniikHOT43/m/Ul8J+kr5Urh26qhxj2o7Zep2ZOOZicq7fe94RWGpPXtxWVyxEGo6zbJUAD/EfMuZesoLzvFoOogG4BQKxA+7uyyFHhmTo0q08yeghCADG0xYmH98Vv3TUqc/6NKYWUeyv0KbIyjDDYupQ1Dzg5obIdRUhruuNXbJ2acfRyE8vFxnEjlqKs4DlMSmV2vwCs2ia8+pgVf+vhHU9pw5tpTivw98ghZXGho0PzlDI7yJ5wJw6JdC+VUV1YsakHYNOuy2GM4Z6WMAvTmFytCony7AKpYS3cSkLxZkh2hXRceaIc5KS7RLmTOuRISl3hHZieL+ngha960mgyunlWsms1FZGsjNJktfNu30MzRDT5c+HSvxy/kelxzmDzRzc6uZBIUwslKrbLYAuwqIom5YNrUjOGjX6lUb2gaOMa0kp+/Sk5/7mb7jnvpOcMpV7igD6MqQggMy/BuE4PxAPXmeF4uSzyrvj8VfgQLVLlPI2lLLUsJ/fJcsBp665BxVZ3Zok6xa6FzumysgXnWEbLFJZfxKKl5TmO17UL/D8FPuwnlWskCx3yPDbJb3hGY7ALmPDkbfkZbZy8VRQyAs1zdBF5pJbEKsNIPzpWhy5idrDExVsMxCo2/21T5Jmx4YGUCSOBLWYOeXcqxiT9+c3Kq6NYoES/z3yIvxg6//1hmIiggwhevyi0pITLXy5Bf97OF6xYHz2g95HH31ZkBA5SbnYhUaPV3ZqZn+0F/Yu6yo2DsS/DI7Fbo+oib2Fmiy8G8sFNSh9FlmQHCKwJM2/UPAWZXfKe54zonk/TbGkDrQZ+1SrvQ7+xaBgK7ONqCIdvJPnktNy4r+KzE1gxXlPF82Yllq1YSRshGpRHm052al+pQp2zVLRifEl0cwdLsRa4rZyail/NZPYyLYnWdX7WwaEZtPRDVj4HJOpBjY+St93yNgLMR5w

ahh that's why - I was using 4.11. I just updated and it's working great!

A question about optimizations such as exude and perturb: how do they
affect the speed and quality of the result mesh? From my experience it
seems disabling them make the program noticably faster, and I didn't
see particularly bad result. I assume by optimizing at each step, the
number of steps to converge is reduced. It, of course, comes with the
cost of optimization itself.

Thank you.

Zesen

On Wed, May 23, 2018 at 9:51 AM, Mael Rouxel-Labbé
<>
wrote:
> Which version of CGAL are you using? The parameter "manifold()" was
> added with CGAL 4.12.
>
> On 23/05/2018 15:41, Zesen Qian wrote:
>> 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
>>>
>>>
>
>
> --
> 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