Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] consistency of point collinearity test and circumcenter construction

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] consistency of point collinearity test and circumcenter construction


Chronological Thread 
  • From: Sylvain Pion <>
  • To:
  • Subject: Re: [cgal-discuss] consistency of point collinearity test and circumcenter construction
  • Date: Mon, 16 Jul 2007 19:19:38 +0200

Matthijs Sypkens Smit a écrit :
Hi,

I'm wondering about the following: I know the construction of a circumcenter (of 4 points) is only possible when the points are not collinear. However, when using a Exact_predicates_inexact_constructions_kernel I encounter cases where:
- coplanar_orientation() returns COLLINEAR, but the construction does not fail and returns a point,
- coplanar_orientation() does not return COLLINEAR, but the circumcenter construction does end in an assertion failure.

Are both these cases to be expected? In particular the last surprised me, since I was hoping to 'catch' the assertion failure, by testing in advance, but now it seems that this does not generally work.

Is it just plain impossible to construct circumcenters without getting assertion failures using my choice of kernel, or are there ways around this (by testing beforehand)?

As Camille said, it is to be expected. Usually it happens when you
insist on computing the circumcenters of slivers. What we use in this
case is something like Robust_circumcenter_traits_3, which computes the
circumcenter approximateluy, but under some control: actually, it
computes it exactly under some Lazy_exact number type, then ask a double
approximation (which precision can be controlled, but the default is
usually fine).

btw;I have tried to check that using a Exact_predicates_exact_constructions_kernel prevents the problem from happening, but I have little experience with this kernel as of yet. I'm getting
CGAL error: assertion violation!
Expr: !(i>s)
File: /user/CGAL-3.3/include/CGAL/Interval_nt.h
Line: 77
Explanation: Variable used before being initialized (or CGAL bug)
but so far I cannot seem to find the cause of the problem. I do believe that all variables involved have actually been initialized.

This most probably indicates a bug in your code, such as the use of
coordinates before intializing/assigning them.

--
Sylvain Pion
INRIA Sophia-Antipolis
Geometrica Project-Team
CGAL, http://cgal.org/



Archive powered by MHonArc 2.6.16.

Top of Page