massaged examples

(one TODO added)
This commit is contained in:
Pierre Alliez 2017-12-03 19:03:09 +01:00
parent ff1244189f
commit bcfd60e918
5 changed files with 15 additions and 13 deletions

View File

@ -14,7 +14,7 @@ typedef boost::associative_property_map<Facet_index_map> Facet_proxy_pmap;
int main()
{
// create polyhedral surface and read input surface triangle mesh
// read input surface triangle mesh
Polyhedron input;
std::ifstream file("data/mask.off");
if (!file || !(file >> input) || input.empty()) {
@ -32,7 +32,7 @@ int main()
fidx_map[f] = 0;
Facet_proxy_pmap fpxmap(fidx_map);
// output plane proxies;
// output planar proxies
std::vector<Plane_proxy> proxies;
// free function interface with named parameters

View File

@ -10,7 +10,7 @@ typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
int main()
{
// create polyhedral surface and read input surface triangle mesh
// read input surface triangle mesh
Polyhedron input;
std::ifstream file("data/mask.off");
if (!file || !(file >> input) || input.empty()) {
@ -18,7 +18,7 @@ int main()
return EXIT_FAILURE;
}
// output polyhedral surface and indexed triangle mesh
// output polyhedral surface and indexed face set
Polyhedron output;
std::vector<Kernel::Point_3> points;
std::vector<std::vector<std::size_t> > triangles; // triplets of indices
@ -31,13 +31,13 @@ int main()
max_nb_proxies(200). // seeding with maximum number of proxies
nb_of_iterations(30). // number of clustering iterations after seeding
// output to polyhedron
output_mesh(&output)); // valid only if the indexed triangles construct a 2-manifold and oriented surface
output_mesh(&output)); // valid when the indexed face set represents a 2-manifold, oriented surface
std::cout << "#anchor points: " << points.size() << std::endl;
std::cout << "#triangles: " << triangles.size() << std::endl;
if (valid_polyhedron)
std::cout << "oriented 2-manifold output." << std::endl;
std::cout << "oriented, 2-manifold output." << std::endl;
return EXIT_SUCCESS;
}

View File

@ -18,7 +18,7 @@ typedef Mesh_approximation::Proxy_fitting Proxy_fitting;
int main()
{
// create polyhedral surface and read input mesh
// read input surface triangle mesh
Polyhedron input;
std::ifstream file("data/mask.off");
if (!file || !(file >> input) || input.empty()) {
@ -26,7 +26,7 @@ int main()
return EXIT_FAILURE;
}
// create VSA approximation algorithm instance
// create VSA algorithm instance
Mesh_approximation approx(input,
get(boost::vertex_point, const_cast<Polyhedron &>(input)));

View File

@ -24,16 +24,19 @@ int main()
Facet_index_map fidx_map;
BOOST_FOREACH(face_descriptor f, faces(input))
fidx_map[f] = 0;
// facet proxy index property map
Facet_proxy_pmap fpxmap(fidx_map);
// free function interface with named parameters
CGAL::VSA::mesh_segmentation(input,
fpxmap, // output indexed face set
fpxmap, // output segmentation
CGAL::VSA::parameters::seeding_method(CGAL::VSA::Hierarchical). // hierarchical seeding
max_nb_proxies(200). // both maximum number of proxies stop criterion,
min_error_drop(0.05). // and minimum error drop stop criterion are specified
max_nb_proxies(200). // first stop criterion
min_error_drop(0.05). // second stop criterion
nb_of_iterations(30)); // number of iterations after seeding
// TODO: retrieve segments of the segmentation
return EXIT_SUCCESS;
}

View File

@ -10,12 +10,11 @@ typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
int main()
{
// create polyhedral surface and read input surface triangle mesh
// read input surface triangle mesh
Polyhedron input;
std::ifstream file("data/mask.off");
file >> input;
// The output will be an indexed triangle mesh
std::vector<Kernel::Point_3> points;
std::vector<std::vector<std::size_t> > triangles;