![]() |
Prusa Slicer 2.6.0
|
Collaboration diagram for igl::Frame_field_deformer:Public Member Functions | |
| IGL_INLINE | Frame_field_deformer () |
| IGL_INLINE | ~Frame_field_deformer () |
| IGL_INLINE void | init (const Eigen::MatrixXd &_V, const Eigen::MatrixXi &_F, const Eigen::MatrixXd &_D1, const Eigen::MatrixXd &_D2, double _Lambda, double _perturb_rotations, int _fixed=1) |
| IGL_INLINE void | optimize (int N, bool reset=false) |
| IGL_INLINE void | reset_opt () |
| IGL_INLINE void | precompute_opt () |
| IGL_INLINE void | precompute_ARAP (Eigen::SparseMatrix< double > &Lff, Eigen::MatrixXd &LfcVc) |
| IGL_INLINE void | precompute_SMOOTH (Eigen::SparseMatrix< double > &MS, Eigen::MatrixXd &bS) |
| IGL_INLINE void | extractBlock (Eigen::SparseMatrix< double > &mat, int r0, int c0, int r, int c, Eigen::SparseMatrix< double > &m1) |
| IGL_INLINE void | compute_optimal_rotations () |
| IGL_INLINE void | compute_optimal_positions () |
| IGL_INLINE void | computeXField (std::vector< Eigen::Matrix< double, 3, 2 > > &XF) |
| IGL_INLINE void | compute_idealWarp (std::vector< Eigen::Matrix< double, 3, 3 > > &WW) |
Public Attributes | |
| Eigen::MatrixXd | V |
| Eigen::MatrixXi | F |
| std::vector< std::vector< int > > | VT |
| std::vector< std::vector< int > > | VTi |
| Eigen::MatrixXd | V_w |
| std::vector< Eigen::Matrix< double, 3, 2 > > | FF |
| std::vector< Eigen::Matrix< double, 3, 3 > > | WW |
| std::vector< Eigen::Matrix< double, 3, 2 > > | XF |
| int | fixed |
| double | perturb_rotations |
| int | nfree |
| int | nconst |
| Eigen::MatrixXd | C |
| Eigen::SparseMatrix< double > | L |
| Eigen::SparseMatrix< double > | M |
| Eigen::MatrixXd | RHS |
| std::vector< Eigen::Matrix< double, 3, 3 > > | RW |
| Eigen::SimplicialCholesky< Eigen::SparseMatrix< double > > | solver |
Private Attributes | |
| double | Lambda = 0.1 |
| IGL_INLINE igl::Frame_field_deformer::Frame_field_deformer | ( | ) |
| IGL_INLINE igl::Frame_field_deformer::~Frame_field_deformer | ( | ) |
| IGL_INLINE void igl::Frame_field_deformer::compute_idealWarp | ( | std::vector< Eigen::Matrix< double, 3, 3 > > & | WW | ) |
References Eigen::ComputeFullU, Eigen::ComputeFullV, F, FF, Eigen::SVDBase< Derived >::matrixV(), Eigen::SVDBase< Derived >::singularValues(), and WW.
Referenced by precompute_opt().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::compute_optimal_positions | ( | ) |
References C, F, Eigen::SimplicialCholeskyBase< Derived >::info(), Lambda, nfree, RHS, RW, Eigen::SparseSolverBase< Derived >::solve(), solver, Eigen::Success, V, V_w, and VT.
Referenced by optimize().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::compute_optimal_rotations | ( | ) |
References C, Eigen::ComputeFullU, Eigen::ComputeFullV, F, Eigen::SVDBase< Derived >::matrixU(), Eigen::SVDBase< Derived >::matrixV(), RW, V, V_w, and WW.
Referenced by optimize().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::computeXField | ( | std::vector< Eigen::Matrix< double, 3, 2 > > & | XF | ) |
References F, FF, V, V_w, and XF.
Referenced by optimize().
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::extractBlock | ( | Eigen::SparseMatrix< double > & | mat, |
| int | r0, | ||
| int | c0, | ||
| int | r, | ||
| int | c, | ||
| Eigen::SparseMatrix< double > & | m1 | ||
| ) |
References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::setFromTriplets().
Referenced by precompute_ARAP(), and precompute_SMOOTH().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::init | ( | const Eigen::MatrixXd & | _V, |
| const Eigen::MatrixXi & | _F, | ||
| const Eigen::MatrixXd & | _D1, | ||
| const Eigen::MatrixXd & | _D2, | ||
| double | _Lambda, | ||
| double | _perturb_rotations, | ||
| int | _fixed = 1 |
||
| ) |
References F, FF, fixed, Lambda, perturb_rotations, precompute_opt(), reset_opt(), and V.
Referenced by igl::frame_field_deformer().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::optimize | ( | int | N, |
| bool | reset = false |
||
| ) |
References compute_optimal_positions(), compute_optimal_rotations(), computeXField(), reset_opt(), and XF.
Referenced by igl::frame_field_deformer().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::precompute_ARAP | ( | Eigen::SparseMatrix< double > & | Lff, |
| Eigen::MatrixXd & | LfcVc | ||
| ) |
References extractBlock(), L, nconst, nfree, and V_w.
Referenced by precompute_opt().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::precompute_opt | ( | ) |
References C, Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::compute(), compute_idealWarp(), igl::cotmatrix(), igl::cotmatrix_entries(), F, fixed, Eigen::SimplicialCholeskyBase< Derived >::info(), L, Lambda, M, nconst, nfree, precompute_ARAP(), precompute_SMOOTH(), RHS, RW, solver, Eigen::Success, V, igl::vertex_triangle_adjacency(), VT, VTi, and WW.
Referenced by init().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::precompute_SMOOTH | ( | Eigen::SparseMatrix< double > & | MS, |
| Eigen::MatrixXd & | bS | ||
| ) |
References block(), extractBlock(), L, nconst, nfree, V, and V_w.
Referenced by precompute_opt().
Here is the call graph for this function:
Here is the caller graph for this function:| IGL_INLINE void igl::Frame_field_deformer::reset_opt | ( | ) |
References perturb_rotations, V, and V_w.
Referenced by init(), and optimize().
Here is the caller graph for this function:| Eigen::MatrixXd igl::Frame_field_deformer::C |
Referenced by compute_optimal_positions(), compute_optimal_rotations(), and precompute_opt().
| Eigen::MatrixXi igl::Frame_field_deformer::F |
Referenced by compute_idealWarp(), compute_optimal_positions(), compute_optimal_rotations(), computeXField(), init(), and precompute_opt().
| std::vector< Eigen::Matrix<double,3,2> > igl::Frame_field_deformer::FF |
Referenced by compute_idealWarp(), computeXField(), and init().
| int igl::Frame_field_deformer::fixed |
Referenced by init(), and precompute_opt().
| Eigen::SparseMatrix<double> igl::Frame_field_deformer::L |
Referenced by precompute_ARAP(), precompute_opt(), and precompute_SMOOTH().
|
private |
Referenced by compute_optimal_positions(), init(), and precompute_opt().
| Eigen::SparseMatrix<double> igl::Frame_field_deformer::M |
Referenced by precompute_opt().
| int igl::Frame_field_deformer::nconst |
Referenced by precompute_ARAP(), precompute_opt(), and precompute_SMOOTH().
| int igl::Frame_field_deformer::nfree |
Referenced by compute_optimal_positions(), precompute_ARAP(), precompute_opt(), and precompute_SMOOTH().
| double igl::Frame_field_deformer::perturb_rotations |
Referenced by init(), and reset_opt().
| Eigen::MatrixXd igl::Frame_field_deformer::RHS |
Referenced by compute_optimal_positions(), and precompute_opt().
| std::vector< Eigen::Matrix<double,3,3> > igl::Frame_field_deformer::RW |
Referenced by compute_optimal_positions(), compute_optimal_rotations(), and precompute_opt().
| Eigen::SimplicialCholesky<Eigen::SparseMatrix<double> > igl::Frame_field_deformer::solver |
Referenced by compute_optimal_positions(), and precompute_opt().
| Eigen::MatrixXd igl::Frame_field_deformer::V |
Referenced by compute_optimal_positions(), compute_optimal_rotations(), computeXField(), init(), precompute_opt(), precompute_SMOOTH(), and reset_opt().
| Eigen::MatrixXd igl::Frame_field_deformer::V_w |
| std::vector<std::vector<int> > igl::Frame_field_deformer::VT |
Referenced by compute_optimal_positions(), and precompute_opt().
| std::vector<std::vector<int> > igl::Frame_field_deformer::VTi |
Referenced by precompute_opt().
| std::vector< Eigen::Matrix<double,3,3> > igl::Frame_field_deformer::WW |
Referenced by compute_idealWarp(), compute_optimal_rotations(), and precompute_opt().
| std::vector< Eigen::Matrix<double,3,2> > igl::Frame_field_deformer::XF |
Referenced by computeXField(), igl::frame_field_deformer(), and optimize().