#include "precomputation.h" #include #include #include #include #include #include #include #include #include #include typedef std::vector > RotationList; const Eigen::RowVector3d sea_green(70./255.,252./255.,167./255.); Eigen::MatrixXd V,U,M; Eigen::MatrixXi F; Eigen::VectorXi S,b; Eigen::MatrixXd L; Eigen::RowVector3d mid; double anim_t = 0.0; double anim_t_dir = 0.03; double bbd = 1.0; bool resolve = true; igl::ARAPData arap_data,arap_grouped_data; igl::ArapDOFData arap_dof_data; enum ModeType { MODE_TYPE_ARAP = 0, MODE_TYPE_ARAP_GROUPED = 1, MODE_TYPE_ARAP_DOF = 2, NUM_MODE_TYPES = 4 } mode = MODE_TYPE_ARAP; bool pre_draw(igl::opengl::glfw::Viewer & viewer) { using namespace Eigen; using namespace std; if(resolve) { MatrixXd bc(b.size(),V.cols()); VectorXd Beq(3*b.size()); for(int i = 0;i