#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/generators.h>
#include <CGAL/Polygon_mesh_processing/triangulate_faces.h>
#include <CGAL/Barycentric_coordinates_3/Discrete_harmonic_coordinates_3.h>
#define PHI 1.6180339887498948482
using Surface_mesh = CGAL::Surface_mesh<Point_3>;
int main() {
Surface_mesh icosahedron;
CGAL::Polygon_mesh_processing::triangulate_faces(faces(icosahedron), icosahedron);
std::vector<double> coords;
std::vector<Point_3> queries{
std::cout << std::endl << "Discrete harmonic coordinates : " << std::endl << std::endl;
for (const auto& query : queries) {
coords.clear();
icosahedron, query, std::back_inserter(coords));
for (std::size_t i = 0; i < coords.size() -1; ++i)
std::cout << coords[i] << ", ";
std::cout << coords[coords.size() -1] << std::endl;
}
std::cout << std::endl;
return EXIT_SUCCESS;
}
boost::graph_traits< Graph >::halfedge_descriptor make_icosahedron(Graph &g, const P ¢er=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT radius=1)
OutputIterator discrete_harmonic_coordinates_3(const TriangleMesh &tmesh, const Point &query, OutputIterator oi, const NamedParameters &np=parameters::default_values())
computes 3D discrete harmonic coordinates with respect to a closed convex triangle mesh.
Definition: Discrete_harmonic_coordinates_3.h:438
Computation_policy_3
Computation_policy_3 provides a way to choose an asymptotic time complexity of the algorithm and its ...
Definition: barycentric_enum_3.h:36