Skip to Content.
Sympa Menu

cgal-discuss - Re: Re: Re: RE: Re: Re: [cgal-discuss][Nef_polyhedron]A morecomplexbutstillsimplequestion

Subject: CGAL users discussion list

List archive

Re: Re: Re: RE: Re: Re: [cgal-discuss][Nef_polyhedron]A morecomplexbutstillsimplequestion


Chronological Thread 
  • From: "Max" <>
  • To: "" <>
  • Subject: Re: Re: Re: RE: Re: Re: [cgal-discuss][Nef_polyhedron]A morecomplexbutstillsimplequestion
  • Date: Thu, 7 Feb 2008 15:56:16 +0800
  • Disposition-notification-to: "Max" <>
  • Organization: LoadCom

I've found the cause by debugging,

1) I found there's an implicit conversion from a Plane_3 to
a Nef_3 because there's no 'explicit' before:

Nef_polyhedron_3(const Plane_3& p, Boundary b = INCLUDED);

in Nef_polyhedron_3.h.

That means the undocumented function mentioned by Peter has actually
not been called.

No matter wheather it's the intention of the authors, I recommend an
'explicit' be added for this ctor to disable such implicit conversion.

2) after this modification,
a) I uncommented the contents related to intersection(const Plane_3&
plane);
b) I copied the file Combine_with_halfspace.h that Peter gave Stephen
to
Nef_3 folder.
and re-compile.

but I was told by the compiler that I still need file
CGAL/Nef_3/Binary_operation.h
(or even more).

I would appreciate if the authors of Nef_3 could give me the latest runnable
files
related to this issue, including the new version of Nef_polyhedron_3.h.

Thanks in advance.
Max

>>>Hello Stephen,
>>>
>>>Thanks for your information.
>>>I'll test with this kernel and checkout the related archive.
>>
>>I've digged into the archive and found the answer Peter Gave you:
>>
>>Just use the undocumented function:
>>
>>N = N.intersection(Plane_3(a,b,c,d));
>>
>>If I understand correctly, it's senmatically equivalent to
>>
>>N = N * Nef_3(Plane_3(a,b,c,d), Nef_3::INCLUDED);
>>
>>except the fact that with it it's not mandatory to use an extended kernel.
>
>I've tested with the following typedef's:
>
>typedef CGAL::Gmpq NT;
>typedef CGAL::Cartesian<NT> Kernel;
>typedef CGAL::Nef_polyhedron_3<Kernel, CGAL::SNC_indexed_items>
>Nef_polyhedron_3;
>
>But I was still given an "Constructor not available for this Kernel" warning
>when the N.intersection(Plane_3(a,b,c,d)) function was called.
>
>For the case that I use the default items type, instead of the indexed items
>type,
>in typedef'ing Nef_3, i.e.:
>
>typedef CGAL::Nef_polyhedron_3<Kernel> Nef_polyhedron_3;
>
>the result was identical.
>
>B/Rgds
>Max
>>
>>>>Hi guys,
>>>>
>>>>Please find the conversation Peter and I have on the archives, the
>>>>half-spaces question has been answered previously there! Peter, you have
>>>>sent these to me!
>>>>
>>>>Max, I also use double coordinates with half-plane operations. I have
>>>>used Cartesian<Gmpq> (exact constructions, exact predicates).
>>
>>One more question:
>>Do you use the indexed items type, i.e. SNC_indexed_items, or just the
>>default one?
>>
>>Thanks
>>Max
>>>>
>>>>Stephen
>>>
>>>
>>--
>>You are currently subscribed to cgal-discuss.
>>To unsubscribe or access the archives, go to
>>https://lists-sop.inria.fr/wws/info/cgal-discuss
>>
>--
>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