mirror of https://github.com/CGAL/cgal
Revert "solved bug when visitor is visited a triangle before its creation"
This reverts commit f4f37cc82ba3e0135e5e9289b6890ab7257694d5.
This commit is contained in:
parent
8edbef468b
commit
0197d1bfd5
|
|
@ -1576,13 +1576,13 @@ bool autorefine_triangle_soup(PointRange& soup_points,
|
|||
soup_triangles_out.reserve(offset + new_triangles.size());
|
||||
for (const std::pair<std::array<EK::Point_3,3>, std::size_t>& t_and_id : new_triangles)
|
||||
{
|
||||
soup_triangles_out.push_back({ get_point_id(t_and_id.first[0]),
|
||||
get_point_id(t_and_id.first[1]),
|
||||
get_point_id(t_and_id.first[2]) });
|
||||
if constexpr(std::is_same_v<Visitor, Wrap_snap_visitor>)
|
||||
visitor.new_subdivision(soup_triangles_out[soup_triangles_out.size()-1], soup_triangles[tri_inter_ids_inverse[t_and_id.second]]);
|
||||
else
|
||||
visitor.new_subtriangle(soup_triangles_out.size()-1, tri_inter_ids_inverse[t_and_id.second]);
|
||||
visitor.new_subtriangle(soup_triangles_out.size(), tri_inter_ids_inverse[t_and_id.second]);
|
||||
soup_triangles_out.push_back({ get_point_id(t_and_id.first[0]),
|
||||
get_point_id(t_and_id.first[1]),
|
||||
get_point_id(t_and_id.first[2]) });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ private:
|
|||
|
||||
// Repair_polygon_soup without remove_pinched_polygons since our polygon are triangles
|
||||
template <typename PointRange, typename PolygonRange,
|
||||
typename Polygon = typename ::CGAL::Polygon_mesh_processing::internal::Polygon_types<PointRange, PolygonRange>::Polygon_3>
|
||||
typename Polygon = typename ::CGAL::internal::Polygon_types<PointRange, PolygonRange>::Polygon_3>
|
||||
struct Triangle_soup_fixer
|
||||
{
|
||||
template <typename NamedParameters>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ struct My_visitor : public PMP::Autorefinement::Default_visitor
|
|||
void number_of_output_triangles(std::size_t nbt)
|
||||
{
|
||||
tgt_check.assign(expected_nb_output, 0);
|
||||
// assert(nbt==expected_nb_output);
|
||||
assert(nbt==expected_nb_output);
|
||||
}
|
||||
|
||||
void verbatim_triangle_copy(std::size_t tgt_id, std::size_t src_id)
|
||||
|
|
@ -62,7 +62,7 @@ struct My_visitor : public PMP::Autorefinement::Default_visitor
|
|||
};
|
||||
|
||||
template <class Tag>
|
||||
void test(const std::string fname, std::size_t nb_vertices_after_autorefine, std::size_t expected_nb_output, Tag tag)
|
||||
void test(const char* fname, std::size_t nb_vertices_after_autorefine, std::size_t expected_nb_output, Tag tag)
|
||||
{
|
||||
std::cout << "Running tests on " << fname;
|
||||
if (std::is_same_v<Tag, CGAL::Sequential_tag>)
|
||||
|
|
@ -80,16 +80,11 @@ void test(const std::string fname, std::size_t nb_vertices_after_autorefine, std
|
|||
|
||||
// Testing autorefine()
|
||||
My_visitor visitor(triangles.size(), expected_nb_output);
|
||||
PMP::repair_polygon_soup(points, triangles);
|
||||
PMP::triangulate_polygons(points, triangles);
|
||||
PMP::autorefine_triangle_soup(points, triangles, CGAL::parameters::visitor(visitor).concurrency_tag(tag).erase_all_duplicates(false).apply_iterative_snap_rounding(true));
|
||||
// PMP::autorefine_triangle_soup(points, triangles, CGAL::parameters::concurrency_tag(tag).erase_all_duplicates(false).apply_iterative_snap_rounding(true).snap_grid_size(23).number_of_iterations(15));
|
||||
CGAL::IO::write_polygon_soup("/tmp/debug.off", points, triangles);
|
||||
PMP::autorefine_triangle_soup(points, triangles, CGAL::parameters::visitor(visitor).concurrency_tag(tag).apply_iterative_snap_rounding(true));
|
||||
assert( nb_vertices_after_autorefine==points.size());
|
||||
assert( expected_nb_output==triangles.size());
|
||||
assert( !PMP::does_triangle_soup_self_intersect(points, triangles) );
|
||||
CGAL::IO::write_polygon_soup("/tmp/debug.off", points, triangles);
|
||||
|
||||
// CGAL::IO::write_polygon_soup("/tmp/debug.off", points, triangles);
|
||||
}
|
||||
|
||||
int main(int argc, const char** argv)
|
||||
|
|
@ -97,7 +92,7 @@ int main(int argc, const char** argv)
|
|||
// file expected_nb_of_vertices expected_nb_of_faces (after repair)
|
||||
for (int i=0;i<(argc-1)/3; ++i)
|
||||
{
|
||||
test(std::string("/home/lvalque/CGAL/git/PMP_triangle_soup_rounding-GF/Polygon_mesh_processing/test/Polygon_mesh_processing/")+argv[1+3*i], atoi(argv[1+3*i+1]), atoi(argv[1+3*i+2]), CGAL::Sequential_tag());
|
||||
test(argv[1+3*i], atoi(argv[1+3*i+1]), atoi(argv[1+3*i+2]), CGAL::Sequential_tag());
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
test(argv[1+3*i], atoi(argv[1+3*i+1]), atoi(argv[1+3*i+2]), CGAL::Parallel_tag());
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue