14#include <Eigen/Sparse>
73 Eigen::SparseMatrix<double>
Dx,
Dy,
Dz;
80 Eigen::SparseMatrix<double>
A;
82 Eigen::SparseMatrix<double>
AtA;
100 const Eigen::MatrixXd& V,
101 const Eigen::MatrixXi& F,
102 const Eigen::MatrixXd& V_init,
105 const Eigen::VectorXi& b,
106 const Eigen::MatrixXd& bc,
130 const Eigen::MatrixXd &Ji,
134 Eigen::MatrixXd &Ri);
144 const Eigen::SparseMatrix<double> &Dx,
145 const Eigen::SparseMatrix<double> &Dy,
146 const Eigen::SparseMatrix<double> &Dz,
147 const Eigen::MatrixXd &W,
148 std::vector<Eigen::Triplet<double> > & IJV);
151#ifndef IGL_STATIC_LIBRARY
#define IGL_INLINE
Definition igl_inline.h:15
void slim_update_weights_and_closest_rotations_with_jacobians(const Eigen::MatrixXd &Ji, igl::MappingEnergyType slim_energy, double exp_factor, Eigen::MatrixXd &W, Eigen::MatrixXd &Ri)
Internal Routine.
void slim_precompute(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::MatrixXd &V_init, SLIMData &data, MappingEnergyType slim_energy, const Eigen::VectorXi &b, const Eigen::MatrixXd &bc, double soft_p)
Compute necessary information to start using SLIM.
Eigen::MatrixXd slim_solve(SLIMData &data, int iter_num)
Run iter_num iterations of SLIM.
MappingEnergyType
Energy Types used for Parameterization/Mapping.
Definition MappingEnergyType.h:16
void slim_buildA(const Eigen::SparseMatrix< double > &Dx, const Eigen::SparseMatrix< double > &Dy, const Eigen::SparseMatrix< double > &Dz, const Eigen::MatrixXd &W, std::vector< Eigen::Triplet< double > > &IJV)
Undocumented function related to SLIM optimization.
Hold precomputed data for AtA_cached.
Definition AtA_cached.h:18
Parameters and precomputed data for computing a SLIM map as derived in "Scalable Locally Injective Ma...
Definition slim.h:34
Eigen::VectorXd rhs
Definition slim.h:70
Eigen::MatrixXd Ri
Definition slim.h:71
MappingEnergyType slim_energy
Mapping energy type.
Definition slim.h:40
int f_num
Definition slim.h:66
bool mesh_improvement_3d
only supported for 3d
Definition slim.h:53
int v_num
Definition slim.h:65
Eigen::VectorXd M
Definition slim.h:62
igl::AtA_cached_data AtA_data
Definition slim.h:83
Eigen::MatrixXd Ji
Definition slim.h:71
double exp_factor
used for exponential energies, ignored otherwise
Definition slim.h:51
double energy
objective value
Definition slim.h:59
Eigen::MatrixXd V_o
V by dim list of mesh vertex positions (dim = 2 for parametrization, 3 otherwise)
Definition slim.h:57
Eigen::MatrixXd V
V by 3 list of mesh vertex positions
Definition slim.h:36
double proximal_p
Definition slim.h:67
Eigen::SparseMatrix< double > Dx
Definition slim.h:73
Eigen::MatrixXi F
F by 3/4 list of mesh faces (triangles/tets)
Definition slim.h:38
Eigen::MatrixXd bc
Fixed values.
Definition slim.h:46
bool has_pre_calc
Definition slim.h:76
int v_n
Definition slim.h:74
Eigen::VectorXd WGL_M
Definition slim.h:69
Eigen::SparseMatrix< double > Dz
Definition slim.h:73
Eigen::SparseMatrix< double > Dy
Definition slim.h:73
double soft_const_p
Weight for enforcing fixed values as soft constraint.
Definition slim.h:48
int f_n
Definition slim.h:74
double avg_edge_length
Definition slim.h:64
Eigen::SparseMatrix< double > A
Definition slim.h:80
Eigen::SparseMatrix< double > AtA
Definition slim.h:82
double mesh_area
Definition slim.h:63
int dim
Definition slim.h:77
Eigen::VectorXi b
Fixed indices.
Definition slim.h:44
Eigen::MatrixXd W
Definition slim.h:72
bool first_solve
Definition slim.h:75
Eigen::VectorXi A_data
Definition slim.h:81