Qingnan Zhou 6 жил өмнө
parent
commit
e6116bf9dd

+ 24 - 18
tests/include/igl/copyleft/cgal/order_facets_around_edges.cpp

@@ -62,11 +62,17 @@ void assert_order(
           V, F, uE, uE2E, uE2oE, uE2C);
     }
 
+    const size_t num_faces = F.rows();
     const size_t num_uE = uE.rows();
     for (size_t i=0; i<num_uE; i++) {
         const auto& order = uE2oE[i];
         const auto& cons  = uE2C[i];
-        Eigen::VectorXi e = uE.row(i);
+        const auto ref_edge = uE2E[i][0];
+        const auto ref_face = ref_edge % num_faces;
+        const auto ref_corner = ref_edge / num_faces;
+        const Eigen::Vector2i e{
+            F(ref_face, (ref_corner+1)%3),
+            F(ref_face, (ref_corner+2)%3) };
         if (order.size() <= 1) continue;
         if (e[0] != v0 && e[0] != v1) continue;
         if (e[1] != v0 && e[1] != v1) continue;
@@ -121,23 +127,23 @@ TEST(copyleft_cgal_order_facets_around_edges, DuplicatedFaces) {
     assert_order(V, F, 1, 2, {0, 1, 3, 2});
 }
 
-//TEST(copyleft_cgal_order_facets_around_edges, MultipleDuplicatedFaces) {
-//    Eigen::MatrixXd V(5, 3);
-//    V << 0.0, 0.0, 0.0,
-//         1.0, 0.0, 0.0,
-//         0.0, 1.0, 0.0,
-//         1.0, 1.0, 0.0,
-//         0.0, 0.0, 1.0;
-//    Eigen::MatrixXi F(6, 3);
-//    F << 0, 1, 2,
-//         1, 2, 0,
-//         2, 1, 3,
-//         1, 3, 2,
-//         1, 2, 4,
-//         4, 1, 2;
-//
-//    assert_order(V, F, 1, 2, {1, 0, 2, 3, 5, 4});
-//}
+TEST(copyleft_cgal_order_facets_around_edges, MultipleDuplicatedFaces) {
+    Eigen::MatrixXd V(5, 3);
+    V << 0.0, 0.0, 0.0,
+         1.0, 0.0, 0.0,
+         0.0, 1.0, 0.0,
+         1.0, 1.0, 0.0,
+         0.0, 0.0, 1.0;
+    Eigen::MatrixXi F(6, 3);
+    F << 0, 1, 2,
+         1, 2, 0,
+         2, 1, 3,
+         1, 3, 2,
+         1, 2, 4,
+         4, 1, 2;
+
+    assert_order(V, F, 1, 2, {1, 0, 2, 3, 5, 4});
+}
 
 TEST(copyleft_cgal_order_facets_around_edges, Debug) {
     Eigen::MatrixXd V(5, 3);