Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Crash on a Nef_polyhedron_3 boolean operation

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Crash on a Nef_polyhedron_3 boolean operation


Chronological Thread 
  • From: Andreas Fabri <>
  • To:
  • Subject: Re: [cgal-discuss] Crash on a Nef_polyhedron_3 boolean operation
  • Date: Tue, 16 Jun 2009 11:02:14 +0200

Laure Guicherd wrote:
I think you are absolutely right.
Let me give you the context : I am working on an advanced mesh editor, and I want the final user to be able to give any mesh in parameter for the boolean operations, or, at least, prevent him from doing this operation if the entry mesh is not correct (i.e., if it has degenerate geometry, like null-length edges or self-intersections).

So I guess I just have to check the integrity of my meshes. Is there any mean to do this in the Polyhedron or Nef Polyhedron structure ? Otherwise I'll just do it myself in my geometry structure :)

Hi Laure,

there is one chapter you might have a look at for testing whether a polyhedral
surface is self intersecting: Intersecting Sequences of dD Iso-oriented Boxes

http://www.cgal.org/Manual/3.4/doc_html/cgal_manual/Box_intersection_d/Chapter_main.html

Note that it is not bound to the CGAL::Polyhedron, so you might use it on
your own data structure.

andreas




Thank you for your precious help,
Regards

Laure

Peter Hachenberger wrote:
Fred says it perfectly. If you want to get a feasible solution, you can only work
with nef3 files to store intermediate results. Otherwise, you will get errors.

If you think that this is not the problem, then send me your original tori
files and I have test with those.

Peter

-----"Fred Dorosh"
<>
wrote: -----

To:

From: "Fred Dorosh"
<>
Date: 06/15/2009 09:47PM
Subject: Re: [cgal-discuss] Crash on a Nef_polyhedron_3 boolean
operation

> I am getting really confused with this... because this mean that the
> problem only occurs when I convert my result Nefs back to Polyhedron
> then to my geometry, and then do the opposite process to get
back to nef
> structure.

Hi Laure,

This paragraph sets off warning bells for me - if you are
converting your
intermediate results back and forth from your own geometrical
representation, and that representation uses floating point
coordinates,
you're likely to run into trouble.

The reason is that very small features can be created as
byproducts of a
boolean operation. If you extract vertex coordinates from the precise
geometry kernel and round them into e.g. 32-bit floating point, these
small features often become corrupted and result in degenerate
geometry.
For instance, two nearby vertices may become merged and create a
zero-length edge. Other less detectable problems can also occur.
If you
keep the geometry in Nef representation until the final operation, you
avoid this problem.

Regards,
Fred

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







Archive powered by MHonArc 2.6.16.

Top of Page