Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] Assertion violation in refine_CGAL::Delaunay_mesh_2 using CGAL::Exact_predicates_inexact_constructions_kernel

Subject: CGAL users discussion list

List archive

[cgal-discuss] Assertion violation in refine_CGAL::Delaunay_mesh_2 using CGAL::Exact_predicates_inexact_constructions_kernel


Chronological Thread 
  • From: Renato Silveira <>
  • To:
  • Subject: [cgal-discuss] Assertion violation in refine_CGAL::Delaunay_mesh_2 using CGAL::Exact_predicates_inexact_constructions_kernel
  • Date: Fri, 22 May 2015 04:36:19 -0300

Hi,

I'm trying to refine a Deluanay triangulation using CGAL::refine_Delaunay_mesh_2. I'm using the kernel definitions:

typedef CGAL::Exact_predicates_inexact_constructions_kernel  K;
typedef CGAL::Triangulation_vertex_base_2<K>  Vb;
typedef CGAL::Delaunay_mesh_face_base_2<K>  Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb>  Tds;
typedef CGAL::Exact_predicates_tag  Itag;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, Tds, Itag>  CDT;
typedef CGAL::Delaunay_mesh_size_criteria_2<CDT>  Criteria;
typedef CGAL::Delaunay_mesher_2<CDT, Criteria>  Mesher;
typedef CDT::Vertex_handle  Vertex_handle;
typedef CDT::Point  CDT_Point;

Initially, my CDT constraints auto-intersects, but I eliminate intersections using CGAL::compute_subcurves (using kernel CGAL::Quotient<CGAL::MP_Float>) on the constraints before the triangulation, as shown in attached figure (I thought it could solves the problem). 

I got a valid CDT triangulation (as shown in the attached figure) but when I try to refine the CDT, using the method:

CGAL::refine_Delaunay_mesh_2(...);

with the criteria:

Criteria(0.125, 25.0f)

I got this assert violation:

terminate called after throwing an instance of 'CGAL::Assertion_exception' 
  what():  CGAL ERROR: assertion violation! 
Expr: n == zone.fh 
File: /usr/local/include/CGAL/Mesh_2/Refine_edges.h 
Line: 438 


I think constraint intersections can appear again when I convert points from kernel CGAL::Quotient<CGAL::MP_Float> to kernel CGAL::Exact_predicates_inexact_constructions_kernel. If I could run CGAL::Delaunay_mesher_2 with kernel CGAL::Quotient<CGAL::MP_Float> I will not have any intersections (I think). 

I don't know if the problem is with my constraints or with the mesher. Any ideas what I should try?

PS: 
- Using only the boundary as CDT constraints, everything works fine (as shown in attached figure). 
- I also tested everything with Exact_predicates_exact_constructions_kernel_with_sqrt kernel, with CGAL::Exact_intersections_tag  but it takes so much time and then it run out of memory with the message: "GNU MP: Cannot allocate memory (size=25186388)".


Thank you in advance

Renato

--
Renato Silveira
     Ph.D. in Computer Science
     Informatics Institute - UFRGS

     Porto Alegre - RS - Brazil

Attachment: cdt_3.png
Description: PNG image

Attachment: cdt_2.png
Description: PNG image

Attachment: cdt_1.png
Description: PNG image




Archive powered by MHonArc 2.6.18.

Top of Page