From 88add6bc7bd4636b231aa364f26241cae434ecbf Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Thu, 7 Feb 2019 15:24:00 +0100 Subject: [PATCH 1/3] Regular_triangulation_3: Add undocumented Regular_triangulation_cell_base_3::hidden_points() --- .../test_p3rt3_insert_remove_point_set.cpp | 6 ++-- ...est_periodic_3_regular_triangulation_3.cpp | 30 +++++++++---------- .../CGAL/Regular_triangulation_cell_base_3.h | 2 +- .../CGAL/Regular_triangulation_cell_base_3.h | 5 ++++ 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp index 971d434ae72..0d0ee703460 100644 --- a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp +++ b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp @@ -79,13 +79,13 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); Vertex_handle vh = p3rt3.insert(p); std::size_t hidden_point_count_2 = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count_2 += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count_2 += iter->hidden_points().size(); assert(hidden_point_count <= hidden_point_count_2); assert(hidden_point_count_2 + p3rt3.number_of_vertices() == cnt); #ifdef REALLY_VERBOSE @@ -121,7 +121,7 @@ public: #endif std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count + cnt + p3rt3.number_of_vertices() == insert_set.size()); } diff --git a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_regular_triangulation_3.cpp b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_regular_triangulation_3.cpp index 40278fe0e86..bff6fcce266 100644 --- a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_regular_triangulation_3.cpp +++ b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_regular_triangulation_3.cpp @@ -188,7 +188,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); } @@ -220,7 +220,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); } @@ -245,7 +245,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); Weighted_point_3 hidden_point(Point_3(0.101, 0.101, 0.101), 0.001); @@ -259,7 +259,7 @@ public: hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) { - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); hidden_found_count += static_cast(std::find(iter->hidden_points_begin(), iter->hidden_points_end(), hidden_point) != iter->hidden_points_end()); } assert(hidden_point_count == 1); @@ -288,7 +288,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); vh = p3rt3.insert(Weighted_point_3(Point_3(0.1,0.1,0.1),0.01)); @@ -301,7 +301,7 @@ public: hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) { - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); hidden_found_count += static_cast(std::find(iter->hidden_points_begin(), iter->hidden_points_end(), hidden_point) != iter->hidden_points_end()); } assert(hidden_point_count == 1); @@ -328,7 +328,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); } @@ -356,7 +356,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) { - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); hidden_found_count += static_cast(std::find(iter->hidden_points_begin(), iter->hidden_points_end(), hidden_point) != iter->hidden_points_end()); } assert(hidden_point_count == 1); @@ -396,7 +396,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); unsigned point_found_count = 0; @@ -433,7 +433,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); } @@ -509,7 +509,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); } @@ -734,7 +734,7 @@ public: std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 0); assert(p3rt3.number_of_hidden_points() == 0); @@ -742,7 +742,7 @@ public: assert(vh == Vertex_handle()); hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 1); assert(p3rt3.number_of_hidden_points() == 1); @@ -750,7 +750,7 @@ public: assert(vh == Vertex_handle()); hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 2); assert(p3rt3.number_of_hidden_points() == 2); @@ -758,7 +758,7 @@ public: assert(vh == Vertex_handle()); hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) - hidden_point_count += std::distance(iter->hidden_points_begin(), iter->hidden_points_end()); + hidden_point_count += iter->hidden_points().size(); assert(hidden_point_count == 3); assert(p3rt3.number_of_hidden_points() == 3); } diff --git a/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h b/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h index 66235c137f3..7d73b2afc8b 100644 --- a/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h +++ b/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h @@ -43,7 +43,7 @@ typedef Point_container::iterator Point_iterator; /// \name Hidden points-related functions /// Not every weighted point inserted in a regular triangulation necessarily -/// appears in the trinagulation. If the weight of a point is too small compared +/// appears in the triangulation. If the weight of a point is too small compared /// to other points, it might be hidden. These hidden vertices are stored /// in a unique corresponding cell (defined through v->cell()). The following /// functions provide set and get functionalities. diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h index 7a3b6571616..73849f4dc97 100644 --- a/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h +++ b/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h @@ -93,6 +93,11 @@ public: Point_const_iterator hidden_points_end() const { return hidden_points_end_internal(); } + const C& hidden_points() const + { + return _hidden; + } + void hide_point(const Point& p) { hide_point_internal(p); } void unhide_point(const Point_iterator pit) From ce5472de15267ddfa6b6b98f547d37e6ea6302a3 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Fri, 8 Feb 2019 16:39:42 +0100 Subject: [PATCH 2/3] Don't test on two files but on random points again --- .../test_p3rt3_insert_remove_point_set.cpp | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp index 0d0ee703460..de6dc0473f3 100644 --- a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp +++ b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp @@ -47,20 +47,20 @@ public: static void test_insert_rnd_then_remove_all (unsigned pt_count, unsigned seed, - const std::string& path) + const std::string& /* path */) { std::cout << "--- test_insert_rnd (" << pt_count << ", " << seed << ')' << std::endl; CGAL::Random random(seed); -// typedef CGAL::Creator_uniform_3 Creator; -// CGAL::Random_points_in_cube_3 in_cube(0.5, random); + typedef CGAL::Creator_uniform_3 Creator; + CGAL::Random_points_in_cube_3 in_cube(0.5, random); Iso_cuboid iso_cuboid(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5); P3RT3 p3rt3(iso_cuboid); - std::ofstream stream("p3rt3_ir_point_set"); - assert(stream); - std::ifstream input_stream(path.c_str()); + //std::ofstream stream("p3rt3_ir_point_set"); + //assert(stream); + //std::ifstream input_stream(path.c_str()); std::vector insert_set; insert_set.reserve(pt_count); @@ -70,12 +70,12 @@ public: std::cout << "-- insert" << std::endl; for (unsigned cnt = 1; cnt <= pt_count; ++cnt) { -// Weighted_point_3 p(*in_cube++, random.get_double(0., 0.015625)); + Weighted_point_3 p(*in_cube++, random.get_double(0., 0.015625)); // std::cout << cnt << " : " << p << std::endl; - Weighted_point_3 p; - input_stream >> p; - assert(p.weight() < 0.015625); - stream << p << std::endl; +// Weighted_point_3 p; +// input_stream >> p; +// assert(p.weight() < 0.015625); +// stream << p << std::endl; std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) @@ -100,7 +100,7 @@ public: insert_set.push_back(p); } - stream.close(); + //stream.close(); assert(p3rt3.is_valid()); @@ -138,7 +138,6 @@ public: { ////// Iso_cuboid unitaire -> 0 <= weight < 0.015625 test_insert_rnd_then_remove_all(800, 7, "data/p3rt3_point_set__s7_n800"); - test_insert_rnd_then_remove_all(800, 12, "data/p3rt3_point_set__s12_n800"); } }; From de77dbd5eb2402c641d11ad4f920a6596a8d8492 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Fri, 8 Feb 2019 16:49:58 +0100 Subject: [PATCH 3/3] cleanup --- .../test_p3rt3_insert_remove_point_set.cpp | 27 ++++--------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp index de6dc0473f3..fceb45f14f8 100644 --- a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp +++ b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_p3rt3_insert_remove_point_set.cpp @@ -45,23 +45,14 @@ public: typedef typename Traits::Point_3 Point_3; typedef typename Traits::Iso_cuboid_3 Iso_cuboid; - static void test_insert_rnd_then_remove_all (unsigned pt_count, - unsigned seed, - const std::string& /* path */) + static void test_insert_rnd_then_remove_all (unsigned pt_count) { - std::cout << "--- test_insert_rnd (" << pt_count << ", " << seed << ')' << std::endl; - - CGAL::Random random(seed); typedef CGAL::Creator_uniform_3 Creator; - CGAL::Random_points_in_cube_3 in_cube(0.5, random); + CGAL::Random_points_in_cube_3 in_cube(0.5); Iso_cuboid iso_cuboid(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5); P3RT3 p3rt3(iso_cuboid); - //std::ofstream stream("p3rt3_ir_point_set"); - //assert(stream); - //std::ifstream input_stream(path.c_str()); - std::vector insert_set; insert_set.reserve(pt_count); std::vector remove_set; @@ -70,12 +61,7 @@ public: std::cout << "-- insert" << std::endl; for (unsigned cnt = 1; cnt <= pt_count; ++cnt) { - Weighted_point_3 p(*in_cube++, random.get_double(0., 0.015625)); -// std::cout << cnt << " : " << p << std::endl; -// Weighted_point_3 p; -// input_stream >> p; -// assert(p.weight() < 0.015625); -// stream << p << std::endl; + Weighted_point_3 p(*in_cube++, CGAL::get_default_random().get_double(0., 0.015625)); std::size_t hidden_point_count = 0; for (Cell_iterator iter = p3rt3.cells_begin(), end_iter = p3rt3.cells_end(); iter != end_iter; ++iter) @@ -100,8 +86,6 @@ public: insert_set.push_back(p); } - //stream.close(); - assert(p3rt3.is_valid()); std::cout << "-- remove" << std::endl; @@ -109,7 +93,7 @@ public: for (; p3rt3.number_of_vertices() != 0; ++cnt) { Vertex_iterator iter = p3rt3.vertices_begin(); - for (int j = random.get_int(0, static_cast(p3rt3.number_of_vertices())); j; --j) + for (int j = CGAL::get_default_random().get_int(0, static_cast(p3rt3.number_of_vertices())); j; --j) ++iter; #ifdef REALLY_VERBOSE std::cout << cnt << " : " << iter->point() << std::endl; @@ -136,8 +120,7 @@ public: static void test () { - ////// Iso_cuboid unitaire -> 0 <= weight < 0.015625 - test_insert_rnd_then_remove_all(800, 7, "data/p3rt3_point_set__s7_n800"); + test_insert_rnd_then_remove_all(800); } };