4 #include <Eigen/SparseCholesky> 5 #include <Euclid/MeshUtil/MeshDefs.h> 6 #include <Euclid/Util/Memory.h> 21 template<
typename Mesh>
25 using FT = FT_t<Mesh>;
26 using Vector_3 = Vector_3_t<Mesh>;
27 using SpMat = Eigen::SparseMatrix<FT>;
65 const typename boost::graph_traits<const Mesh>::vertex_descriptor& v,
66 std::vector<T>& geodesics);
72 const Mesh* mesh =
nullptr;
108 #include "src/GeodesicsInHeat.cpp" ProPtr< const SpMat > cot_mat
Cotangent matrix.
Definition: GeodesicsInHeat.h:85
Single source approximate geodesic distance using the heat method.
Definition: GeodesicsInHeat.h:22
Eigen::SimplicialLDLT< SpMat > heat_solver
The heat equation solver.
Definition: GeodesicsInHeat.h:97
Eigen::SimplicialLDLT< SpMat > poisson_solver
The poisson equation solver.
Definition: GeodesicsInHeat.h:102
FT resolution
The resolution of mesh.
Definition: GeodesicsInHeat.h:78
ProPtr< const SpMat > mass_mat
Mass matrix.
Definition: GeodesicsInHeat.h:92
void compute(const typename boost::graph_traits< const Mesh >::vertex_descriptor &v, std::vector< T > &geodesics)
Compute geodesics distance from a vertex.
Definition: GeodesicsInHeat.cpp:81
void build(const Mesh &mesh, float scale=1.0f, FT resolution=0, const SpMat *cot_mat=nullptr, const SpMat *mass_mat=nullptr)
Build up the necesssary computational components.
Definition: GeodesicsInHeat.cpp:10
const Mesh * mesh
The target mesh.
Definition: GeodesicsInHeat.h:72
void scale(float scale)
Reset the time scale.
Definition: GeodesicsInHeat.cpp:61