Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] What is the appropriate kernel/epsilon for CSG on inaccurate (float innaccuarcies) meshes?

Subject: CGAL users discussion list

List archive

[cgal-discuss] What is the appropriate kernel/epsilon for CSG on inaccurate (float innaccuarcies) meshes?


Chronological Thread 
  • From: Arthur Silber <>
  • To:
  • Subject: [cgal-discuss] What is the appropriate kernel/epsilon for CSG on inaccurate (float innaccuarcies) meshes?
  • Date: Thu, 25 Oct 2018 20:03:24 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:CaVT3BZ9+CZ2jvVnikqenkj/LSx+4OfEezUN459isYplN5qZoM66bnLW6fgltlLVR4KTs6sC17KJ9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCa/bL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjE28G/ZhM9+gr9Frh29vBF/2ZLYbZuPOfZiYq/Qf9UXTndBUMZLUCxBB5uxYpcVD+odPeZYspP9rEYToxu/AQmjH/3gyiVVjXLxx6I6yfghEQHb3Aw6BN8Bqm7UrMn1NKcPS+C116jIzTHYYPxIwzfx8pXHfQ44rPyKQLl+ctLRxFExGw/Zilics4/oMjOP2ugTrWSX8vBsWf+thmMjrQx6vyKhyd02iobTg4IY0lDE+jt9wIYyPdC4TVR0Yd+gEJdJqSGaNJZ6TtosQ211uis3zqcKuZG8fCgNx5QnwwDQZ+abfIiP5xLvTOeRITFmi3J5YL+zmQq+/Ey6xuD/VsS4ykhGojRYntXWq3wA1Rje5tCCSvRn/0eh3TiP1xrU6uFBOU07j7DbK4Ihwr4tjJoeql7MHjXqmEX2ka+WbF4k+ums6+v8fLrmvIWQOJJqhQ3mKKQhhtS/AfgkMggJR2WU5eu826fn/UHgXbpKj+Y2nbXEsJDBPsQWvbW5Ag9Q0oY78RmzFTam0NICnXkGNl1JYhyHj5K6c23Jdfv3BPP6j1W3mypw3NjHOKfgC9PDNCvtirDkKJ9n905B0kIIzNRV6ogcXrgbPPLuQGf4rsDYEwUiMgi+zvyhBNgrhdBWYn6GHqLMaPCailSP/O96e7DdNr9Qgy70Lr0e39CriHY4nVEHeqzwgskecmy4A+59IkGTbGCqjtpTSD5W7Dp7d/TjjRi5aRAWf2y7Bv1u7ysnCJ+8FobHTI23xrCMjn/iQ89mI1teA1XJKk/GMoWJX/BWNnCXK85l1yIHDP2vEtBwkx6pswD+xvxsKe+GoiA=

Hi,

I haven't found answers using google, so maybe cgal-discuss has some ideas on how I can proceed:

I am using CGAL to compute CSG boolean operations with OFF meshes using mostly the example code using Nef_polyhedron. My input meshes use xyz-float coordinates and I cannot change this, unfortunately.

CSG works great if I can pre-process meshes, i.e. round all points to a certain precision to avoid floating-point inaccuracies that come from my meshes.

However, in some cases, I cannot do this rounding, as that would make things worse. Consider this example:

grafik.png

I want to union the orange mesh with the blue mesh. With floats as coordinates, I can position the orange mesh onto the blue mesh, but whether the red points of the orange mesh are on/inside the blue mesh, depend on the accuracy on the translation math done before and might or might not be true for the given float xyz-values. Rounding point positions might make things worse, as the red points might be extra-far away of the blue surface after rounding than before.

So: Is there a kernel or a way to tell CGAL to use epsilon-distances here? As in "I know my accuracy might work up to 4 digits after comma, but please ignore everything more fine-granular and use epsilon math, as in: consider the red points to be connected with the blue surface even if there might be a distance of 0.00000001"

I'd be really grateful for some ideas.

Thanks a lot!
Arthur

PNG image



  • [cgal-discuss] What is the appropriate kernel/epsilon for CSG on inaccurate (float innaccuarcies) meshes?, Arthur Silber, 10/25/2018

Archive powered by MHonArc 2.6.18.

Top of Page