diff --git a/Triangulation/include/CGAL/Triangulation_data_structure.h b/Triangulation/include/CGAL/Triangulation_data_structure.h index 2b8ca29f8fc..c93ddb76507 100644 --- a/Triangulation/include/CGAL/Triangulation_data_structure.h +++ b/Triangulation/include/CGAL/Triangulation_data_structure.h @@ -828,8 +828,8 @@ ::remove_decrease_dimension(Vertex_handle v, Vertex_handle star) /* Concept */ delete_vertex(v); delete_full_cell(s); inf1->set_vertex(1, Vertex_handle()); - inf1->set_vertex(1, Vertex_handle()); - inf2->set_neighbor(1, Full_cell_handle()); + inf2->set_vertex(1, Vertex_handle()); + inf1->set_neighbor(1, Full_cell_handle()); inf2->set_neighbor(1, Full_cell_handle()); associate_vertex_with_full_cell(inf1, 0, star); associate_vertex_with_full_cell(inf2, 0, v2); diff --git a/Triangulation/test/Triangulation/CMakeLists.txt b/Triangulation/test/Triangulation/CMakeLists.txt index 54825f56e2a..03a5deff165 100644 --- a/Triangulation/test/Triangulation/CMakeLists.txt +++ b/Triangulation/test/Triangulation/CMakeLists.txt @@ -23,8 +23,9 @@ if(TARGET CGAL::Eigen3_support) create_single_source_cgal_program("test_torture.cpp") create_single_source_cgal_program("test_insert_if_in_star.cpp") create_single_source_cgal_program("simple_io_test.cpp") + create_single_source_cgal_program("issue_8347.cpp") foreach(target test_triangulation test_delaunay test_regular test_tds - test_torture test_insert_if_in_star simple_io_test) + test_torture test_insert_if_in_star simple_io_test issue_8347) target_link_libraries(${target} PUBLIC CGAL::Eigen3_support) endforeach() diff --git a/Triangulation/test/Triangulation/issue_8347.cpp b/Triangulation/test/Triangulation/issue_8347.cpp new file mode 100644 index 00000000000..9f13868ffd5 --- /dev/null +++ b/Triangulation/test/Triangulation/issue_8347.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include +#include + +typedef CGAL::Dynamic_dimension_tag Dim_tag; +//typedef CGAL::Dimension_tag<2> Dim_tag; + +typedef CGAL::Epick_d< Dim_tag > Kernel; +typedef CGAL::Delaunay_triangulation Triangulation; + +typedef typename Triangulation::Vertex_handle Vertex_handle; +typedef typename Triangulation::Point Point; + +Point create_point(double x,double y) { + std::vector c; + c.push_back(x); + c.push_back(y); + return Point(2,c.begin(),c.end()); +} + +int main() { + + Triangulation T(2); + + Point p1=create_point(2, 3); + Point p2=create_point(6, 3); + Point p3=create_point(0, 4); + + Vertex_handle vh1=T.insert(p1); + T.insert(p2); + T.remove(vh1); + + T.insert(p3); + + std::cout << "Exit normally" << std::endl; + + return 0; +}