12#include "../igl_inline.h" 
   13#include "../MappingEnergyType.h" 
   97        const Eigen::MatrixXd &V,
 
   98        const Eigen::MatrixXi &F,
 
   99        const Eigen::MatrixXd &V_init,
 
  131#ifndef IGL_STATIC_LIBRARY 
#define IGL_INLINE
Definition igl_inline.h:15
 
double compute_energy(SCAFData &s, const Eigen::MatrixXd &w_uv, bool whole)
Compute SCAF energy.
 
void scaf_precompute(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::MatrixXd &V_init, triangle::SCAFData &data, MappingEnergyType slim_energy, Eigen::VectorXi &b, Eigen::MatrixXd &bc, double soft_p)
Compute necessary information to start using SCAF.
 
void scaf_system(triangle::SCAFData &s, Eigen::SparseMatrix< double > &L, Eigen::VectorXd &rhs)
Set up the SCAF system L * uv = rhs, without solving it.
 
Eigen::MatrixXd scaf_solve(triangle::SCAFData &data, int iter_num)
Run iter_num iterations of SCAF, with precomputed data.
 
MappingEnergyType
Energy Types used for Parameterization/Mapping.
Definition MappingEnergyType.h:16
 
@ SYMMETRIC_DIRICHLET
Definition MappingEnergyType.h:19
 
Use a similar interface to igl::slim Implement ready-to-use 2D version of the algorithm described in ...
Definition scaf.h:25
 
Eigen::MatrixXd Ji_s
Definition scaf.h:77
 
Eigen::SparseMatrix< double > Dx_m
Definition scaf.h:76
 
long sv_num
Definition scaf.h:38
 
Eigen::VectorXi internal_bnd
Definition scaf.h:67
 
int dim
Definition scaf.h:31
 
Eigen::MatrixXd Ri_s
Definition scaf.h:77
 
double total_energy
scaffold + isometric
Definition scaf.h:33
 
bool has_pre_calc
Definition scaf.h:74
 
Eigen::SparseMatrix< double > Dz_s
Definition scaf.h:75
 
igl::MappingEnergyType scaf_energy
Definition scaf.h:27
 
Eigen::SparseMatrix< double > Dy_s
Definition scaf.h:75
 
Eigen::VectorXi fixed_ids
Definition scaf.h:62
 
Eigen::MatrixXd m_V
input initial mesh V
Definition scaf.h:41
 
Eigen::MatrixXd Ri_m
Definition scaf.h:77
 
Eigen::MatrixXi s_T
scaffold domain tets: scaffold tets
Definition scaf.h:48
 
long mv_num
Definition scaf.h:37
 
Eigen::MatrixXd w_uv
whole domain uv: mesh + free vertices
Definition scaf.h:46
 
Eigen::SparseMatrix< double > Dz_m
Definition scaf.h:76
 
Eigen::MatrixXd rect_frame_V
Definition scaf.h:68
 
Eigen::MatrixXd W_s
Definition scaf.h:78
 
Eigen::SparseMatrix< double > Dx_s
Definition scaf.h:75
 
double soft_const_p
Definition scaf.h:65
 
std::map< int, Eigen::RowVectorXd > soft_cons
Definition scaf.h:64
 
Eigen::MatrixXd Ji_m
Definition scaf.h:77
 
Eigen::MatrixXd W_m
Definition scaf.h:78
 
Eigen::MatrixXi w_T
Definition scaf.h:49
 
Eigen::VectorXi frame_ids
Definition scaf.h:61
 
Eigen::VectorXd m_M
mesh area or volume
Definition scaf.h:52
 
double mesh_measure
area or volume
Definition scaf.h:58
 
long sf_num
Definition scaf.h:38
 
Eigen::VectorXd w_M
area/volume weights for whole
Definition scaf.h:56
 
long mf_num
Definition scaf.h:37
 
Eigen::VectorXd s_M
scaffold area or volume
Definition scaf.h:54
 
Eigen::MatrixXi m_T
input initial mesh F/T
Definition scaf.h:43
 
Eigen::SparseMatrix< double > Dy_m
Definition scaf.h:76
 
double energy
objective value
Definition scaf.h:35
 
igl::MappingEnergyType slim_energy
Definition scaf.h:28
 
double scaffold_factor
Definition scaf.h:26
 
long v_num
Definition scaf.h:39
 
double proximal_p
Definition scaf.h:59
 
std::vector< int > component_sizes
Definition scaf.h:70
 
std::vector< int > bnd_sizes
Definition scaf.h:71
 
long f_num
Definition scaf.h:39