You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I can confirm the assertion failure. My current understanding (could be completely off) is that after remove, the full cells have only 1 vertex, but we leave an old Vertex_handle as second vertex (from when the cell was actually of dimension 1), which should be harmless since in dimension 0 we should only look at one vertex. However, insert (do_insert_increase_dimension in particular) looks at S->vertex(cur_dim) where cur_dim has already been increased to 1, i.e. it looks at this second vertex.
TODO: understand why insert does that exactly, and determine whether we can avoid it or we need to clean up the vertex arrays.
Hi Marc, thanks for looking into this. I just tried, and I can confirm that with the obvious fix in Triangulation_data_structure.h, my little test program runs through, and also in my bigger program (where I do inserts and deletes all the time) everything seems fine, also in dimensions 3 and 4.
Issue Details
In the program below, when I add two points, remove one of them and add another, the program crashes:
terminate called after throwing an instance of 'CGAL::Precondition_exception'
what(): CGAL ERROR: precondition violation!
Expr: s1 != Full_cell_handle()
File: /home/kerber/software/CGAL-5.6.1/include/CGAL/Triangulation_data_structure.h
Line: 506
Aborted (core dumped)
This happens both with Epeck/Epick and with Dimension_tag<2>/Dynamic_dimension_tag. It does work for Delaunay_triangulation_2.
Source Code
Environment
The text was updated successfully, but these errors were encountered: