Clean useless code
This commit is contained in:
@@ -246,95 +246,6 @@ void smooth_along_curvature_flow(TriangleMesh& tmesh,
|
||||
smooth_along_curvature_flow(faces(tmesh), tmesh, time, parameters::all_default());
|
||||
}
|
||||
|
||||
namespace internal {
|
||||
|
||||
// @todo clean that if it's useless
|
||||
template<typename TriangleMesh, typename FaceRange, typename NamedParameters>
|
||||
void solve_mcf(const FaceRange& faces,
|
||||
TriangleMesh& tmesh,
|
||||
const double time,
|
||||
std::vector<CGAL::Triple<std::size_t, std::size_t, double> >& stiffness,
|
||||
bool compute_stiffness,
|
||||
const NamedParameters& np)
|
||||
{
|
||||
using boost::choose_param;
|
||||
using boost::get_param;
|
||||
|
||||
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type GeomTraits;
|
||||
|
||||
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VertexPointMap;
|
||||
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point),
|
||||
get_property_map(CGAL::vertex_point, tmesh));
|
||||
|
||||
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
|
||||
typedef typename boost::lookup_named_param_def <
|
||||
internal_np::vertex_is_constrained_t,
|
||||
NamedParameters,
|
||||
Constant_property_map<vertex_descriptor, bool>
|
||||
> ::type VCMap;
|
||||
VCMap vcmap = choose_param(get_param(np, internal_np::vertex_is_constrained),
|
||||
Constant_property_map<vertex_descriptor, bool>(false));
|
||||
|
||||
// nb_iterations
|
||||
std::size_t nb_iterations = choose_param(get_param(np, internal_np::number_of_iterations), 1);
|
||||
|
||||
#if defined(CGAL_EIGEN3_ENABLED)
|
||||
#if EIGEN_VERSION_AT_LEAST(3,2,0)
|
||||
typedef typename Eigen::SparseMatrix<double> Eigen_sparse_matrix;
|
||||
typedef typename Eigen::BiCGSTAB<Eigen_sparse_matrix, Eigen::IncompleteLUT<double> > Eigen_solver;
|
||||
typedef CGAL::Eigen_solver_traits<Eigen_solver> Default_solver;
|
||||
#else
|
||||
typedef bool Default_solver;//compilation should crash
|
||||
//if no solver is provided and Eigen version < 3.2
|
||||
#endif
|
||||
#else
|
||||
typedef bool Default_solver;//compilation should crash
|
||||
//if no solver is provided and Eigen version < 3.2
|
||||
#endif
|
||||
|
||||
#if defined(CGAL_EIGEN3_ENABLED)
|
||||
CGAL_static_assertion_msg(
|
||||
(!boost::is_same<typename GetSolver<NamedParameters, Default_solver>::type, bool>::value) || EIGEN_VERSION_AT_LEAST(3, 2, 0),
|
||||
"Eigen3 version 3.2 or later is required.");
|
||||
#else
|
||||
CGAL_static_assertion_msg(
|
||||
(!boost::is_same<typename GetSolver<NamedParameters, Default_solver>::type, bool>::value),
|
||||
"Eigen3 version 3.2 or later is required.");
|
||||
#endif
|
||||
|
||||
typedef typename GetSolver<NamedParameters, Default_solver>::type Sparse_solver;
|
||||
typedef typename Sparse_solver::Matrix Eigen_matrix;
|
||||
typedef typename Sparse_solver::Vector Eigen_vector;
|
||||
Sparse_solver solver = choose_param(get_param(np, internal_np::sparse_linear_solver), Default_solver());
|
||||
|
||||
std::size_t n = vertices(tmesh).size();
|
||||
|
||||
Eigen_matrix A(n, n);
|
||||
Eigen_vector bx(n), by(n), bz(n), Xx(n), Xy(n), Xz(n);
|
||||
|
||||
if(compute_stiffness)
|
||||
{
|
||||
internal::Shape_smoother<TriangleMesh, VertexPointMap, VCMap, Sparse_solver, GeomTraits> smoother(tmesh, vpmap, vcmap);
|
||||
|
||||
smoother.init_smoothing(faces);
|
||||
smoother.calculate_stiffness_matrix_elements(stiffness);
|
||||
}
|
||||
else
|
||||
{
|
||||
internal::Shape_smoother<TriangleMesh, VertexPointMap, VCMap, Default_solver, GeomTraits> smoother(tmesh, vpmap, vcmap);
|
||||
|
||||
smoother.init_smoothing(faces);
|
||||
|
||||
for(std::size_t i=0; i<nb_iterations; ++i)
|
||||
{
|
||||
smoother.setup_system(A, bx, by, bz, stiffness, time);
|
||||
smoother.solve_system(A, Xx, Xy, Xz, bx, by, bz, solver);
|
||||
smoother.update_mesh(Xx, Xy, Xz);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // internal
|
||||
} // Polygon_mesh_processing
|
||||
} // CGAL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user