#include #include #include #include #include Eigen::MatrixXd X,B; Eigen::MatrixXi Tri; Eigen::MatrixXi Tet; Eigen::VectorXi TriTag; Eigen::VectorXi TetTag; Eigen::VectorXd D; std::vector XFields; std::vector EFields; std::vector XF; std::vector TriF; std::vector TetF; // This function is called every time a keyboard button is pressed bool key_down(igl::opengl::glfw::Viewer& viewer, unsigned char key, int modifier) { using namespace std; using namespace Eigen; if (key >= '1' && key <= '9') { double t = double((key - '1')+1) / 9.0; VectorXd v = B.col(2).array() - B.col(2).minCoeff(); v /= v.col(0).maxCoeff(); vector s; for (unsigned i=0; i(t-0.1)) // select a thick slab s.push_back(i); MatrixXd V_temp(s.size()*4,3); MatrixXi F_temp(s.size()*4,3); VectorXd D_temp(s.size()*4); for (unsigned i=0; i 1 ? argv[1] : TUTORIAL_SHARED_PATH "/hand.msh", X, Tri, Tet, TriTag, TetTag, XFields, XF, EFields, TriF, TetF); for(auto i:EFields) std::cout<(); // Compute barycenters igl::barycenter(X, Tet, B); // Plot the generated mesh igl::opengl::glfw::Viewer viewer; viewer.callback_key_down = &key_down; key_down(viewer,'5',0); viewer.launch(); }