40 #ifndef GEOGRAM_MESH_MESH_MANIFOLD_HARMONICS
41 #define GEOGRAM_MESH_MESH_MANIFOLD_HARMONICS
54 enum LaplaceBeltramiDiscretization {
78 LaplaceBeltramiDiscretization discretization,
79 const std::string& attribute_name =
"eigen",
81 bool print_spectrum =
false
91 double eigen_val,
const double* eigen_vector,
110 LaplaceBeltramiDiscretization discretization,
112 index_t nb_eigens_per_band = 30,
113 double initial_shift = 0.0,
114 void* client_data =
nullptr
Common include file, providing basic definitions. Should be included before anything else by all head...
Types and functions for memory manipulation.
Global Vorpaline namespace.
void(* ManifoldHarmonicsCallback)(index_t eigen_index, double eigen_val, const double *eigen_vector, void *client_data)
A function pointer to be used with mesh_compute_manifold_harmonics_by_bands()
void mesh_compute_manifold_harmonics(Mesh &M, index_t nb_eigens, LaplaceBeltramiDiscretization discretization, const std::string &attribute_name="eigen", double shift=0.0, bool print_spectrum=false)
Computes the Manifold Harmonics basis functions.
geo_index_t index_t
The type for storing and manipulating indices.
void mesh_compute_manifold_harmonics_by_bands(Mesh &M, index_t nb_eigens, LaplaceBeltramiDiscretization discretization, ManifoldHarmonicsCallback callback, index_t nb_eigens_per_band=30, double initial_shift=0.0, void *client_data=nullptr)
Computes Laplacian eigenfunctions band by band.
Types and functions for numbers manipulation.