mirror of https://github.com/CGAL/cgal
make stitching BGL, and complete test with Surface_mesh
This commit is contained in:
parent
e173ca8a1f
commit
afba431244
|
|
@ -74,7 +74,8 @@ detect_duplicated_boundary_edges
|
||||||
{
|
{
|
||||||
typedef typename boost::graph_traits<PM>::halfedge_descriptor halfedge_descriptor;
|
typedef typename boost::graph_traits<PM>::halfedge_descriptor halfedge_descriptor;
|
||||||
|
|
||||||
pmesh.normalize_border();
|
// pmesh.normalize_border();//only available in Polyhedron_3, and called to
|
||||||
|
// speed-up the operation
|
||||||
|
|
||||||
typedef std::set<halfedge_descriptor, LessHedge> Border_halfedge_set;
|
typedef std::set<halfedge_descriptor, LessHedge> Border_halfedge_set;
|
||||||
Border_halfedge_set border_halfedge_set(less_hedge);
|
Border_halfedge_set border_halfedge_set(less_hedge);
|
||||||
|
|
@ -162,7 +163,7 @@ struct Naive_border_stitching_modifier
|
||||||
{
|
{
|
||||||
//we remove h2->opposite()->vertex()
|
//we remove h2->opposite()->vertex()
|
||||||
vertices_to_delete.push_back( h2_src );
|
vertices_to_delete.push_back( h2_src );
|
||||||
update_target_vertex(h2->opposite(), v_to_keep, pmesh);
|
update_target_vertex(opposite(h2, pmesh), v_to_keep, pmesh);
|
||||||
}
|
}
|
||||||
set_halfedge(v_to_keep, h1, pmesh);
|
set_halfedge(v_to_keep, h1, pmesh);
|
||||||
|
|
||||||
|
|
@ -184,7 +185,7 @@ struct Naive_border_stitching_modifier
|
||||||
{
|
{
|
||||||
//we remove h1->opposite()->vertex()
|
//we remove h1->opposite()->vertex()
|
||||||
vertices_to_delete.push_back( h1_src );
|
vertices_to_delete.push_back( h1_src );
|
||||||
update_target_vertex(h1->opposite(), v_to_keep, pmesh);
|
update_target_vertex(opposite(h1, pmesh), v_to_keep, pmesh);
|
||||||
}
|
}
|
||||||
set_halfedge(v_to_keep, opposite(h1,pmesh), pmesh);
|
set_halfedge(v_to_keep, opposite(h1,pmesh), pmesh);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,24 +31,24 @@ void test_polyhedron(const char* fname)
|
||||||
std::cout << "OK\n";
|
std::cout << "OK\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//void test_surface_mesh(const char* fname)
|
void test_surface_mesh(const char* fname)
|
||||||
//{
|
{
|
||||||
// typedef K::Point_3 Point;
|
typedef K::Point_3 Point;
|
||||||
// typedef CGAL::Surface_mesh<Point> Mesh;
|
typedef CGAL::Surface_mesh<Point> Mesh;
|
||||||
//
|
|
||||||
// std::cout << "Testing Surface_mesh " << fname << "..." << std::flush;
|
std::cout << "Testing Surface_mesh " << fname << "..." << std::flush;
|
||||||
// std::ifstream input(fname);
|
std::ifstream input(fname);
|
||||||
// Mesh m;
|
Mesh m;
|
||||||
// if (!input || !(input >> m)){
|
if (!input || !(input >> m)){
|
||||||
// std::cerr << "Error: can not read file.";
|
std::cerr << "Error: can not read file.";
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// CGAL::Polygon_mesh_processing::stitch_borders(m);
|
CGAL::Polygon_mesh_processing::stitch_borders(m);
|
||||||
// //todo : add a validity test
|
//todo : add a validity test
|
||||||
//
|
|
||||||
// std::cout << "OK\n";
|
std::cout << "OK\n";
|
||||||
//}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
@ -58,5 +58,12 @@ int main()
|
||||||
test_polyhedron("data_stitching/mid_border.off");
|
test_polyhedron("data_stitching/mid_border.off");
|
||||||
test_polyhedron("data_stitching/multiple_incidence.off");
|
test_polyhedron("data_stitching/multiple_incidence.off");
|
||||||
test_polyhedron("data_stitching/incidence_3.off");
|
test_polyhedron("data_stitching/incidence_3.off");
|
||||||
|
|
||||||
|
test_surface_mesh("data_stitching/full_border.off");
|
||||||
|
test_surface_mesh("data_stitching/full_border_quads.off");
|
||||||
|
test_surface_mesh("data_stitching/half_border.off");
|
||||||
|
test_surface_mesh("data_stitching/mid_border.off");
|
||||||
|
test_surface_mesh("data_stitching/multiple_incidence.off");
|
||||||
|
test_surface_mesh("data_stitching/incidence_3.off");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue