Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] Bug with Arr_landmarks_point_location and Constrained_Delaunay_triangulation_2

Subject: CGAL users discussion list

List archive

[cgal-discuss] Bug with Arr_landmarks_point_location and Constrained_Delaunay_triangulation_2


Chronological Thread 
  • From: Winnie Hellmann <>
  • To:
  • Subject: [cgal-discuss] Bug with Arr_landmarks_point_location and Constrained_Delaunay_triangulation_2
  • Date: Thu, 11 Aug 2011 14:18:03 +0200

Hi everybody,

I experienced a strange bug when including Arr_landmarks_point_location and Constrained_Delaunay_triangulation_2 in the "wrong" order. The following example doesn't compile:

#include <CGAL/Cartesian.h>
#include <CGAL/Gmpq.h>

#include <CGAL/Arr_landmarks_point_location.h>
#include <CGAL/Triangulation_euclidean_traits_2.h>
#include <CGAL/Constrained_Delaunay_triangulation_2.h>

typedef CGAL::Gmpq Fraction;
typedef CGAL::Cartesian<Fraction> Kernel;

typedef CGAL::Triangulation_euclidean_traits_2<Kernel> Triangulation_traits;
typedef CGAL::Constrained_Delaunay_triangulation_2<Triangulation_traits> Triangulation;

int main()
{
Triangulation t;

return 0;
}

I am using the GCC 4.5.2 with CGAL 3.6.1 (which is the latest release in the Ubuntu 11.04 repository). The error I get is attached as error.log.

The same example compiles by simply moving the include of Arr_landmarks_point_location.h below Constrained_Delaunay_triangulation_2.h.

Now that I found the bug (after several days of digging through the code) I can avoid it, but maybe this can be fixed in CGAL somehow (if this has not already happened in the current release).

Best regards,
Winnie



In file included from /usr/include/CGAL/Constrained_Delaunay_triangulation_2.h:24:0,
                 from /tmp/test/test.cpp:5:
/usr/include/CGAL/Constrained_triangulation_2.h: In member function ‘CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Vertex_handle CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::insert(CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Point&, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Face_handle) [with Gt = CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, Tds = CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > >, Itag = CGAL::No_intersection_tag, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Vertex_handle = CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > > > >, CGAL::Default>, false>, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Point = CGAL::Point_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Face_handle = CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > > > > >, CGAL::Default>, false>]’:
/usr/include/CGAL/Constrained_triangulation_2.h:343:24:   instantiated from ‘CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Vertex_handle CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::virtual_insert(CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Point&, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Face_handle) [with Gt = CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, Tds = CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > >, Itag = CGAL::No_intersection_tag, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Vertex_handle = CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > > > >, CGAL::Default>, false>, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Point = CGAL::Point_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Constrained_triangulation_2<Gt, Tds, Itag>::Face_handle = CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > > > > >, CGAL::Default>, false>]’
/tmp/test/test.cpp:19:1:   instantiated from here
/usr/include/CGAL/Constrained_triangulation_2.h:371:3: error: no matching function for call to ‘locate(const CGAL::Constrained_triangulation_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > >, CGAL::No_intersection_tag>::Point&, CGAL::Constrained_triangulation_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > >, CGAL::No_intersection_tag>::Locate_type&, int&, CGAL::Constrained_triangulation_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_face_base_2<CGAL::Triangulation_euclidean_traits_2<CGAL::Cartesian<CGAL::Gmpq> >, CGAL::Triangulation_ds_face_base_2<void> > > >, CGAL::No_intersection_tag>::Face_handle&)’




Archive powered by MHonArc 2.6.16.

Top of Page