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