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