Skip to Content.
Sympa Menu

cgal-discuss - Re: Re: [cgal-discuss] [Nef_polyhedron_3] interior(), closure() and boundary()

Subject: CGAL users discussion list

List archive

Re: Re: [cgal-discuss] [Nef_polyhedron_3] interior(), closure() and boundary()


Chronological Thread 
  • From: Peter Hachenberger <>
  • To:
  • Subject: Re: Re: [cgal-discuss] [Nef_polyhedron_3] interior(), closure() and boundary()
  • Date: Tue, 05 Feb 2008 15:14:48 +0100

I fixed the bug. Do you need the fixed code?

Peter

On Mon, 2008-02-04 at 22:50 +0800, Max wrote:
> Hi Peter,
>
> Thank you for your quick help! It's really a good news for me that
> I seemed not to be COMPLETELY wrong. :-)
>
> From the changes you've made on the code, if I understand
> correctly, the definition of them could be refined further
> as follows:
>
> -------------------------------------------------------------
> For a given Nef_polyhedron_3 N,
> with interior(N), one gets the volume(s) that N originally has, without
> any boundary item
> with boundary(N), one gets the complete boundary of N, no matter wheather
> they are originally included in N, without any volume.
> with enclosure(N), one gets the volume(s) that N originally has, with the
> complete boundary of it
> -------------------------------------------------------------
>
> If they are incorrect, partially or completely, please let me know.
> Thanks again for your help.
>
> >Hi Max,
> >
> >> From the doc, I get the brief definitions of them:
> >>
> >> interior():With interior() one deselects all boundary items.
> >> closure():with closure() one selects all boundary items.
> >> boundary():with boundary() one deselects all volumes.
> >
> >I found that in the documentation and have to admit that the description
> >is too simple. I will change it. It should be:
> >
> >interior: deselect all boundary items
> >boundary: select all boundary items, deselect all volumes
> >closure(N) = complement(interior(complement(N)))
> >
> >This complies with the mathematical operations.
> >
> >So your testcode could be as follows:
> >
> > Nef_polyhedron N_1(Plane_3( 1, 0, 0,-1), Nef_polyhedron::INCLUDED);
> > Nef_polyhedron N_2(Plane_3( 1, 0, 0,-1), Nef_polyhedron::EXCLUDED);
> > Nef_polyhedron N_pl = N_1 - N_2; // a plane slice
> > Nef_polyhedron N_empty(Nef_polyhedron::EMPTY);
> >
> > CGAL_assertion(N_1.interior() == N_2);
> > CGAL_assertion(N_2.interior() == N_2);
> > CGAL_assertion(N_pl.interior() == N_empty);
> > CGAL_assertion(N_1.closure() == N_1);
> > CGAL_assertion(N_2.closure() == N_1);
> > CGAL_assertion(N_pl.closure() == N_pl);
> > CGAL_assertion(N_1.boundary() == N_pl);
> > CGAL_assertion(N_2.boundary() == N_pl);
> > CGAL_assertion(N_pl.boundary() == N_pl);
> >
> >As you can see, there are a few lines, which remained unchanged. I
> >tested the code and also had problems.
>
> It's still not clear for me. You mean the 'problem' is just the
> 'correct' result or it will be solved/refined later?
>
> >It works nicely for the standard
> >kernels, but using an extended kernel, the special handling of the
> >infimaximal box causes problems. I guess you need the topological
> >operations combined with the extended kernel, don't you?
>
> What I really need is just the capability of input of data
> with double data type and perform some bool operation. Runnability
> and performance is more important than exactness in my current
> application.
>
> >
> >Peter
> >--
> >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