Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Assertion violation in Delaunay_triangulation_3.h

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Assertion violation in Delaunay_triangulation_3.h


Chronological Thread 
  • From: Monique Teillaud <>
  • To:
  • Subject: Re: [cgal-discuss] Assertion violation in Delaunay_triangulation_3.h
  • Date: Mon, 31 Mar 2014 19:39:18 +0200

Hi

that test does the following:

for each finite cell c
for each adjacent cell n of c
is the 4th vertex of n outside the circumscribing sphere of c?

see
http://doc.cgal.org/latest/Triangulation_3/classCGAL_1_1Delaunay__triangulation__3.html#af5c0c915316ad748b7c04ff5a9184dfe
and
http://doc.cgal.org/latest/Triangulation_3/index.html#title0

--
Monique Teillaud
http://www.inria.fr/sophia/members/Monique.Teillaud/
INRIA Sophia Antipolis - Méditerranée
Institut National de Recherche en Informatique et Automatique

Le 28/03/14 23:03, gupta61 a écrit :
One more thing. So the place where the code is failing is

(Taken from Delaunay_triangulation_3.h, CGAL 4.1)
////////////////////////////////////////////////////////////////////////////////////
if ( ! Tr_Base::is_valid(c,verbose,level) ) {
if (verbose) {
std::cerr << "combinatorically invalid cell" ;
for (int i=0; i <= dimension(); i++ )
std::cerr << c->vertex(i)->point() << ", " ;
std::cerr << std::endl;
}
CGAL_triangulation_assertion(false);
return false;
}
switch ( dimension() ) {
case 3:
{
if ( ! is_infinite(c) ) {
is_valid_finite(c,verbose,level);
for (int i=0; i<4; i++ ) {
if (side_of_sphere(c,
c->vertex((c->neighbor(i))->index(c))->point())
== ON_BOUNDED_SIDE ) {
if (verbose)
std::cerr << "non-empty sphere " << std::endl;
CGAL_triangulation_assertion(false);
return false;
}
}
}
break;
}
//////////////////////////////////////////////////////////////////////////////////////////////

Now the triangulation is valid because it is checking that
"Tr_Base::is_valid(c,verbose,level)" through this call. It is the second
test which I don't understand in terms of what it is trying to check? Can
you let me know a little bit more details about what /property/ is it
checking by this call "side_of_sphere(c,
c->vertex((c->neighbor(i))->index(c))->point()) == ON_BOUNDED_SIDE" ?

Thanks.



-----
Piyush Gupta
UIUC
--
View this message in context:
http://cgal-discuss.949826.n4.nabble.com/Assertion-violation-in-Delaunay-triangulation-3-h-tp4659027p4659031.html
Sent from the cgal-discuss mailing list archive at Nabble.com.







Archive powered by MHonArc 2.6.18.

Top of Page