Skip to Content.
Sympa Menu

cgal-discuss - Re: Re: Re: [cgal-discuss][Nef_polyhedron]A more complex butstillsimplequestion

Subject: CGAL users discussion list

List archive

Re: Re: Re: [cgal-discuss][Nef_polyhedron]A more complex butstillsimplequestion


Chronological Thread 
  • From: "Max" <>
  • To: "" <>
  • Subject: Re: Re: Re: [cgal-discuss][Nef_polyhedron]A more complex butstillsimplequestion
  • Date: Wed, 6 Feb 2008 14:09:26 +0800
  • Disposition-notification-to: "Max" <>
  • Organization: LoadCom

>Hello Peter
>
>From what I get from your mail msg's, AFAIUC, there's
>the following facts with relate to Nef_3:
>
>1. To use half-space nef_3 ctor such as
> Nef_polyhedron_3 N(Plane_3(1, 0, 0, -1), Nef_polyhedron_3::INCLUDED);
>one should use extended kernel;
>
>2. Don't use inexact kernels with Nef_3;
>
>3. To play with Nef_3 with double type coordinates, one should
>use SNC_indexed_items as the 2nd template parameter in instantiating
>a Nef_3 type;
>
>4. Extended kernels do not work together with SNC_indexed_items.
>
>It seems that there's no choice, of combinition of Nef_3/kernel, for me
>to meet these needs:
>
>a) I need the half-space Nef_3 ctor; (that means I should used extended
>kernel)
>
>b) my coordinates is double type; (that means I should use
>SNC_indexed_items, but it's
>incompatible with extended kernel)
>
>So this seems to be a deadlock. Is there any solution?
>
>Many thanks for your help, Peter.
>

I've tested for the following combinitions:
a) Number type, integer(I) or float(F), more specifcally,
use Gmpz or Gmpzf;
b) Standard(S) or extended kernel(E), more specifcally,
use Homogeneous<> or Extended_homogeneous<>;
c) items type for Nef_3: default(D) or SNC_indexed_items(I)

I've tested for all of the combinitions of [a(I|F), b(S|E), c(D|I)],
and the results is as follows:

configuration Result
-----------------------------------------------------------------------
[I, S, D] 1. “Gmpz constructed from non-integer double
value” warning
2. “Constructor not available for this
Kernel” warning
[I, S, I] “Gmpz constructed from non-integer double value”
warning
[I, E, D] “Gmpz constructed from non-integer double value”
warning
[I, E, I] 1. “Gmpz constructed from non-integer double
value” warning
2. Runtime error, at (CGAL)
snc_external_structure.h @ line 1090:
it->second.sort(Halfedge_key_lt());
[F, S, D] Runtime error and exit directly:
CGAL error: assertion violation!
Expr: 0
File:
e:\lib\CGAL-3.3.1\include\CGAL/Nef_3/Pluecker_line_3.h
Line: 129
Explanation:Pluecker line 0 0 0 0 0 0
shouldn't appear!!!
[F, S, I] “Constructor not available for this Kernel” warning
[F, E, D] Runtime error and exit directly:
CGAL error: assertion violation!
Expr: 0
File:
e:\lib\CGAL-3.3.1\include\CGAL/Nef_3/Pluecker_line_3.h
Line: 129
Explanation:Pluecker line 0 0 0 0 0 0
shouldn't appear!!!
[F, E, I] Runtime error, at (CGAL) snc_external_structure.h @
line 1090:
it->second.sort(Halfedge_key_lt());

Additionally, I've tested the Exact_predicates_exact_constructions_kernel
kernel with the default or index items type for Nef_3, the reaults are
the same:

I got a tatic assertion failure in Point_3.h @ line 46:
BOOST_STATIC_ASSERT((boost::is_same<Self, typename R_::Point_3>::value));

Test platform: CGAL 3.3.1(with updates you gave me)+WinXP/SP2+VS2005/SP1

What I get from the tests is, none of all the combinitions I've tested could
give me a clean output.

>B/Rgds
>Max





Archive powered by MHonArc 2.6.16.

Top of Page