mirror of https://github.com/CGAL/cgal
Update bench_garland_heckbert
This commit is contained in:
parent
260af72d6e
commit
708efa82b5
|
|
@ -4,13 +4,14 @@
|
|||
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_count_ratio_stop_predicate.h>
|
||||
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h>
|
||||
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h>
|
||||
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_composed_policies.h>
|
||||
#include <CGAL/Surface_mesh_simplification/edge_collapse.h>
|
||||
|
||||
#include <CGAL/Surface_mesh_simplification/edge_collapse.h>
|
||||
#include <CGAL/Polygon_mesh_processing/autorefinement.h>
|
||||
|
||||
#include <CGAL/Polygon_mesh_processing/manifoldness.h>
|
||||
#include <CGAL/Polygon_mesh_processing/distance.h>
|
||||
|
||||
#include <CGAL/Surface_mesh_simplification/edge_collapse.h>
|
||||
|
||||
#include <CGAL/IO/polygon_mesh_io.h>
|
||||
|
||||
#include <chrono>
|
||||
|
|
@ -35,8 +36,13 @@ typedef SMS::GarlandHeckbert_plane_policies<Surface_mesh, Kernel>
|
|||
typedef SMS::GarlandHeckbert_probabilistic_plane_policies<Surface_mesh, Kernel> Prob_plane;
|
||||
typedef SMS::GarlandHeckbert_triangle_policies<Surface_mesh, Kernel> Classic_tri;
|
||||
typedef SMS::GarlandHeckbert_probabilistic_triangle_policies<Surface_mesh, Kernel> Prob_tri;
|
||||
typedef SMS::GarlandHeckbert_line_policies<Surface_mesh, Kernel> Line_quadric;
|
||||
typedef SMS::GarlandHeckbert_composed_policies<Surface_mesh, Kernel, Classic_plane, Line_quadric> Classic_line;
|
||||
typedef SMS::GarlandHeckbert_policies<Surface_mesh, Kernel> Classic_plane_plus_line;
|
||||
|
||||
// Old policies composed with line policies
|
||||
typedef SMS::internal::GarlandHeckbert_line_policies<Surface_mesh, Kernel> Line_quadric;
|
||||
typedef SMS::internal::GarlandHeckbert_composed_policies<Surface_mesh, Kernel, Prob_plane, Line_quadric> Proba_plane_plus_line;
|
||||
typedef SMS::internal::GarlandHeckbert_composed_policies<Surface_mesh, Kernel, Classic_tri, Line_quadric> Classic_tri_plus_line;
|
||||
typedef SMS::internal::GarlandHeckbert_composed_policies<Surface_mesh, Kernel, Prob_tri, Line_quadric> Proba_tri_plus_line;
|
||||
|
||||
double mean_aspect_ratio(Surface_mesh& mesh){
|
||||
double total_aspect_ratio=0;
|
||||
|
|
@ -90,6 +96,8 @@ int main(int argc, char** argv)
|
|||
{
|
||||
Surface_mesh mesh;
|
||||
const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cube-meshed.off");
|
||||
PMP::duplicate_non_manifold_vertices(mesh);
|
||||
PMP::autorefine(mesh);
|
||||
|
||||
if(!CGAL::IO::read_polygon_mesh(filename, mesh))
|
||||
{
|
||||
|
|
@ -117,11 +125,17 @@ int main(int argc, char** argv)
|
|||
else if(policy == "Prob_triangle")
|
||||
time=collapse_gh(tmesh, ratio, Prob_tri(tmesh));
|
||||
else if(policy == "Plane_plus_line_0.1")
|
||||
time=collapse_gh(tmesh, ratio, Classic_line(tmesh, 10));
|
||||
time=collapse_gh(tmesh, ratio, Classic_plane_plus_line(tmesh, 100, 0.1));
|
||||
else if(policy == "Plane_plus_line_0.01")
|
||||
time=collapse_gh(tmesh, ratio, Classic_line(tmesh, 100));
|
||||
time=collapse_gh(tmesh, ratio, Classic_plane_plus_line(tmesh, 100, 0.01));
|
||||
else if(policy == "Plane_plus_line_0.001")
|
||||
time=collapse_gh(tmesh, ratio, Classic_line(tmesh, 1000));
|
||||
time=collapse_gh(tmesh, ratio, Classic_plane_plus_line(tmesh, 100, 0.001));
|
||||
else if(policy == "Classic_tri_line")
|
||||
time=collapse_gh(tmesh, ratio, Classic_tri_plus_line(tmesh, 100));
|
||||
else if(policy == "Proba_plane_line")
|
||||
time=collapse_gh(tmesh, ratio, Proba_plane_plus_line(tmesh, Prob_plane(tmesh), Line_quadric(tmesh), 100));
|
||||
else if(policy == "Proba_tri_line")
|
||||
time=collapse_gh(tmesh, ratio, Proba_tri_plus_line(tmesh, Prob_tri(tmesh), Line_quadric(tmesh), 100));
|
||||
|
||||
std::cout << policy << " " << PMP::approximate_Hausdorff_distance<TAG>(tmesh, mesh)
|
||||
<< " " << PMP::max_distance_to_triangle_mesh<TAG>(tmesh.points(),mesh)
|
||||
|
|
@ -130,13 +144,16 @@ int main(int argc, char** argv)
|
|||
CGAL::IO::write_polygon_mesh("out_"+policy+".off", tmesh, CGAL::parameters::stream_precision(17));
|
||||
};
|
||||
|
||||
collapse("Classic_plane");
|
||||
collapse("Classic_triangle");
|
||||
// collapse("Classic_plane");
|
||||
// collapse("Classic_triangle");
|
||||
collapse("Prob_plane");
|
||||
collapse("Prob_triangle");
|
||||
collapse("Plane_plus_line_0.1");
|
||||
// collapse("Plane_plus_line_0.1");
|
||||
collapse("Plane_plus_line_0.01");
|
||||
collapse("Plane_plus_line_0.001");
|
||||
collapse("Classic_tri_line");
|
||||
collapse("Proba_plane_line");
|
||||
collapse("Proba_tri_line");
|
||||
// collapse("Plane_plus_line_0.001");
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue