Subject: CGAL users discussion list
List archive
- From: Peter Hachenberger <>
- To:
- Subject: Re: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs
- Date: Tue, 22 Jan 2008 13:22:53 +0100
Hi Stephen,
there is nothing like this in CGAL at the moment. As a matter of fact,
reliable rounding in 3D is still open research. As long as we cannot
give any nice robustness guarantees, we will not offer something like
that. So for instance, you have plane (that is not orthogonal to some
coordinate axis) and a point, which are pretty close together. If you
round the point coordinates and the plane coordinates there are actually
three events that can occur. First, you can find out that they are still
so far away that we don't want the vertex to collapse on the plane.
Second, the rounding determines that the point is on the plane. And
third and not less likely than second, the rounding finds the vertex on
the wrong side of the plane. In 2D the so-called snap rounding works
pretty nicely, but in 3D there are no good solutions, yet.
Peter
On Mon, 2008-01-21 at 12:51 -0800, Stephen Wong wrote:
> Hello,
>
>
>
> Iām finding that since CGAL is using exact representations of numbers
> in Boolean operations, working with datasets with floating-point data
> can produce correct, but less-than-desirable results. In one example,
> I have two cubes, one inside another, with two faces flush against
> each other. Since the numerical representation is double, during
> conversion to Gmpq or Gmpz, they are not the same plane and, thus
> after a CSG subtraction, a thin 1.0e-16 width slab is left (instead of
> removing part of that face). In another case the slab was as small as
> 1.0e-300.
>
>
>
> A numerical example is as such:
>
>
>
> Cube1 (0,0,0) ā (3,3,3)
>
> Cube2 (1.0e-10, 0, 0) ā (2, 2, 2)
>
> When Cube1 minus cube2 is performed, a slab of width 1.0e-10 is left.
>
>
>
> Is there a way for Nef_polyhedron_3 to remove very thin slabs based on
> a certain tolerance value? Rounding the input values will not always
> solve this problem.
>
>
>
> Thanks.
>
>
>
> Stephen
>
>
- Boolean Operations (Nef_3) creating thin (e-16) slabs, Stephen Wong, 01/21/2008
- Re: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Bart Janssens, 01/22/2008
- RE: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Stephen Wong, 01/25/2008
- RE: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Peter Hachenberger, 01/25/2008
- RE: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Stephen Wong, 01/25/2008
- Re: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Peter Hachenberger, 01/22/2008
- Re: [cgal-discuss] Boolean Operations (Nef_3) creating thin (e-16) slabs, Bart Janssens, 01/22/2008
Archive powered by MHonArc 2.6.16.