16 #include <CGAL/boost/graph/Seam_mesh.h> 17 #include <CGAL/Surface_mesh_parameterization/Error_code.h> 31 template<
typename Mesh,
typename VertexRadiusMap,
typename EdgeWeightMap>
44 template<
typename Mesh,
45 typename VertexRadiusMap,
46 typename EdgeWeightMap,
53 CGAL::Seam_mesh<Mesh, SEM, SVM>& seam_mesh,
84 enum class RicciFlowSolverStatus
101 template<
typename Mesh,
102 typename VertexRadiusMap,
103 typename EdgeWeightMap,
104 typename VertexCurvatureMap>
109 VertexCurvatureMap vcm,
117 template<
typename Mesh,
typename SEM,
typename SVM>
121 using TriangleMesh = CGAL::Seam_mesh<Mesh, SEM, SVM>;
122 using halfedge_descriptor =
123 typename boost::graph_traits<TriangleMesh>::halfedge_descriptor;
124 using Scalar =
typename CGAL::Kernel_traits<
typename boost::property_traits<
125 typename boost::property_map<Mesh, boost::vertex_point_t>::type>::
126 value_type>::Kernel::FT;
148 void add_cone(
typename boost::graph_traits<Mesh>::vertex_descriptor v,
162 template<
typename VertexUVMap,
163 typename VertexIndexMap,
164 typename VertexParameterizedMap>
165 CGAL::Surface_mesh_parameterization::Error_code parameterize(
167 halfedge_descriptor bhd,
169 VertexIndexMap vimap,
170 VertexParameterizedMap vpmap);
173 using vd =
typename boost::graph_traits<Mesh>::vertex_descriptor;
174 using ed =
typename boost::graph_traits<Mesh>::edge_descriptor;
175 using VRM = std::map<vd, Scalar>;
176 using VRPM = boost::associative_property_map<VRM>;
177 using EWM = std::map<ed, Scalar>;
178 using EWPM = boost::associative_property_map<EWM>;
179 using VCM = std::map<vd, Scalar>;
180 using VCPM = boost::associative_property_map<VCM>;
183 const Mesh& _underlying_mesh;
196 #include "src/RicciFlow.cpp" RicciFlowSolverStatus ricci_flow(Mesh &mesh, VertexRadiusMap vrm, EdgeWeightMap ewm, VertexCurvatureMap vcm, const RicciFlowSolverSettings &settings=RicciFlowSolverSettings())
The discrete Ricci flow.
Definition: RicciFlow.cpp:409
Compute plane parameterization with Ricci flow.
Definition: RicciFlow.h:118
void circle_packing_metric(Mesh &mesh, VertexRadiusMap vrm, EdgeWeightMap ewm)
Compute the circle packing metric.
Definition: RicciFlow.cpp:330
Ricci flow solver settings.
Definition: RicciFlow.h:70
void embed_circle_packing_metric(const Mesh &mesh, VertexRadiusMap vrm, EdgeWeightMap ewm, CGAL::Seam_mesh< Mesh, SEM, SVM > &seam_mesh, VertexUVMap uvm)
Embed the circle packing metric into plane.
Definition: RicciFlow.cpp:385
RicciFlowSolverType
Ricci flow solver types.
Definition: RicciFlow.h:59