#include #include #include #include #include #include #include #include #include #include // Input mesh Eigen::MatrixXd V; Eigen::MatrixXi F; // Per face bases Eigen::MatrixXd B1,B2,B3; // Face barycenters Eigen::MatrixXd B; // Scale for visualizing the fields double global_scale; // Random length factor double rand_factor = 5; // Create a random set of tangent vectors Eigen::VectorXd random_constraints(const Eigen::VectorXd& b1, const Eigen::VectorXd& b2, int n) { Eigen::VectorXd r(n*3); for (unsigned i=0; i'8') return false; viewer.data.lines.resize(0,9); int num = key - '0'; // Interpolate cerr << "Interpolating " << num * 2 << "-PolyVector field" << endl; VectorXi b(3); b << 1511, 603, 506; MatrixXd bc(b.size(),num*3); for (unsigned i=0; i