mirror of https://github.com/CGAL/cgal
fix the solver traits the template parameter of the class should model
This commit is contained in:
parent
92342d3ef1
commit
0f1a5b8fed
|
|
@ -136,8 +136,8 @@ struct Skel_polyhedron_items_3: CGAL::Polyhedron_items_with_id_3 {
|
||||||
/// boost::property_map<TriangleMesh, CGAL::vertex_point_t>::const_type.
|
/// boost::property_map<TriangleMesh, CGAL::vertex_point_t>::const_type.
|
||||||
/// \endcode
|
/// \endcode
|
||||||
///
|
///
|
||||||
/// @tparam SparseLinearAlgebraTraits_d
|
/// @tparam SolverTraits_
|
||||||
/// a model of `SparseLinearAlgebraTraitsWithFactor_d`.<br>
|
/// a model of `NormalEquationSparseLinearAlgebraTraits_d`.<br>
|
||||||
/// <b>%Default:</b> If \ref thirdpartyEigen "Eigen" 3.2 (or greater) is available
|
/// <b>%Default:</b> If \ref thirdpartyEigen "Eigen" 3.2 (or greater) is available
|
||||||
/// and `CGAL_EIGEN3_ENABLED` is defined, then an overload of `Eigen_solver_traits` is provided as default parameter:
|
/// and `CGAL_EIGEN3_ENABLED` is defined, then an overload of `Eigen_solver_traits` is provided as default parameter:
|
||||||
/// \code
|
/// \code
|
||||||
|
|
@ -154,7 +154,7 @@ struct Skel_polyhedron_items_3: CGAL::Polyhedron_items_with_id_3 {
|
||||||
template <class TriangleMesh,
|
template <class TriangleMesh,
|
||||||
class Traits_ = Default,
|
class Traits_ = Default,
|
||||||
class VertexPointMap_ = Default,
|
class VertexPointMap_ = Default,
|
||||||
class SparseLinearAlgebraTraits_d_ = Default>
|
class SolverTraits_ = Default>
|
||||||
class Mean_curvature_flow_skeletonization
|
class Mean_curvature_flow_skeletonization
|
||||||
{
|
{
|
||||||
// Public types
|
// Public types
|
||||||
|
|
@ -177,16 +177,16 @@ public:
|
||||||
|
|
||||||
#ifndef DOXYGEN_RUNNING
|
#ifndef DOXYGEN_RUNNING
|
||||||
typedef typename Default::Get<
|
typedef typename Default::Get<
|
||||||
SparseLinearAlgebraTraits_d_,
|
SolverTraits_,
|
||||||
#if defined(CGAL_EIGEN3_ENABLED)
|
#if defined(CGAL_EIGEN3_ENABLED)
|
||||||
CGAL::Eigen_solver_traits<
|
CGAL::Eigen_solver_traits<
|
||||||
Eigen::SparseLU<
|
Eigen::SparseLU<
|
||||||
CGAL::Eigen_sparse_matrix<double>::EigenType,
|
CGAL::Eigen_sparse_matrix<double>::EigenType,
|
||||||
Eigen::COLAMDOrdering<int> > >
|
Eigen::COLAMDOrdering<int> > >
|
||||||
#else
|
#else
|
||||||
SparseLinearAlgebraTraits_d_ // no parameter provided, and Eigen is not enabled: so don't compile!
|
SolverTraits_ // no parameter provided, and Eigen is not enabled: so don't compile!
|
||||||
#endif
|
#endif
|
||||||
>::type SparseLinearAlgebraTraits_d;
|
>::type SolverTraits;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// @cond CGAL_DOCUMENT_INTERNAL
|
/// @cond CGAL_DOCUMENT_INTERNAL
|
||||||
|
|
@ -286,7 +286,7 @@ private:
|
||||||
/** Storing the weights for edges. */
|
/** Storing the weights for edges. */
|
||||||
std::vector<double> m_edge_weight;
|
std::vector<double> m_edge_weight;
|
||||||
/** The sparse solver. */
|
/** The sparse solver. */
|
||||||
SparseLinearAlgebraTraits_d m_solver;
|
SolverTraits m_solver;
|
||||||
|
|
||||||
/** Assign a unique id to a new vertex. */
|
/** Assign a unique id to a new vertex. */
|
||||||
int m_vertex_id_count;
|
int m_vertex_id_count;
|
||||||
|
|
@ -617,12 +617,12 @@ public:
|
||||||
nrows = nver * 2;
|
nrows = nver * 2;
|
||||||
}
|
}
|
||||||
// Assemble linear system At * A * X = At * B
|
// Assemble linear system At * A * X = At * B
|
||||||
typename SparseLinearAlgebraTraits_d::Matrix A(nrows, nver);
|
typename SolverTraits::Matrix A(nrows, nver);
|
||||||
assemble_LHS(A);
|
assemble_LHS(A);
|
||||||
|
|
||||||
typename SparseLinearAlgebraTraits_d::Vector X(nver), Bx(nrows);
|
typename SolverTraits::Vector X(nver), Bx(nrows);
|
||||||
typename SparseLinearAlgebraTraits_d::Vector Y(nver), By(nrows);
|
typename SolverTraits::Vector Y(nver), By(nrows);
|
||||||
typename SparseLinearAlgebraTraits_d::Vector Z(nver), Bz(nrows);
|
typename SolverTraits::Vector Z(nver), Bz(nrows);
|
||||||
assemble_RHS(Bx, By, Bz);
|
assemble_RHS(Bx, By, Bz);
|
||||||
|
|
||||||
MCFSKEL_DEBUG(std::cerr << "before solve\n";)
|
MCFSKEL_DEBUG(std::cerr << "before solve\n";)
|
||||||
|
|
@ -887,7 +887,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assemble the left hand side.
|
/// Assemble the left hand side.
|
||||||
void assemble_LHS(typename SparseLinearAlgebraTraits_d::Matrix& A)
|
void assemble_LHS(typename SolverTraits::Matrix& A)
|
||||||
{
|
{
|
||||||
MCFSKEL_DEBUG(std::cerr << "start LHS\n";)
|
MCFSKEL_DEBUG(std::cerr << "start LHS\n";)
|
||||||
|
|
||||||
|
|
@ -948,9 +948,9 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assemble the right hand side.
|
/// Assemble the right hand side.
|
||||||
void assemble_RHS(typename SparseLinearAlgebraTraits_d::Vector& Bx,
|
void assemble_RHS(typename SolverTraits::Vector& Bx,
|
||||||
typename SparseLinearAlgebraTraits_d::Vector& By,
|
typename SolverTraits::Vector& By,
|
||||||
typename SparseLinearAlgebraTraits_d::Vector& Bz)
|
typename SolverTraits::Vector& Bz)
|
||||||
{
|
{
|
||||||
MCFSKEL_DEBUG(std::cerr << "start RHS\n";)
|
MCFSKEL_DEBUG(std::cerr << "start RHS\n";)
|
||||||
|
|
||||||
|
|
@ -1356,8 +1356,8 @@ private:
|
||||||
template <class TriangleMesh,
|
template <class TriangleMesh,
|
||||||
class Traits_,
|
class Traits_,
|
||||||
class VertexPointMap_,
|
class VertexPointMap_,
|
||||||
class SparseLinearAlgebraTraits_d_>
|
class SolverTraits_>
|
||||||
std::size_t Mean_curvature_flow_skeletonization<TriangleMesh, Traits_, VertexPointMap_, SparseLinearAlgebraTraits_d_>::collapse_short_edges()
|
std::size_t Mean_curvature_flow_skeletonization<TriangleMesh, Traits_, VertexPointMap_, SolverTraits_>::collapse_short_edges()
|
||||||
{
|
{
|
||||||
std::size_t cnt=0, prev_cnt=0;
|
std::size_t cnt=0, prev_cnt=0;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue