#include #include #include #include #include #include #include #include TEST_CASE("orient_halfedges: sanity checks", "[igl]") { const auto meshes = test_common::manifold_meshes(); for(const auto& mesh : meshes) { Eigen::MatrixXd V; Eigen::MatrixXi F; igl::read_triangle_mesh(test_common::data_path(mesh), V, F); Eigen::VectorXi I; igl::remove_unreferenced(Eigen::MatrixXd(V), Eigen::MatrixXi(F), V, F, I); Eigen::MatrixXi TT, TTi; igl::triangle_triangle_adjacency(F, TT, TTi); // Fix mis-match convention { Eigen::PermutationMatrix<3,3> perm(3); perm.indices() = Eigen::Vector3i(1,2,0); TT = (TT*perm).eval(); TTi = (TTi*perm).eval(); for(int i=0;i b(m); for(int i=0; i appeared1(m,0), appearedm1(m,0); for(int i=0; i=0) { REQUIRE(E(i,j) == E(TT(i,j),TTi(i,j))); } } } } }