AABB.cpp 870 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <igl/AABB.h>
  2. #include <test_common.h>
  3. TEST_CASE("AABB: find_2d", "[igl]")
  4. {
  5. Eigen::MatrixXd V(6,2);
  6. V <<
  7. 0,0,
  8. 1,0,
  9. 0,1,
  10. 2,1,
  11. 2,2,
  12. 1,2;
  13. Eigen::MatrixXi F(4,3);
  14. F<<
  15. 2,0,1,
  16. 2,1,5,
  17. 5,3,4,
  18. 5,1,3;
  19. igl::AABB<Eigen::MatrixXd,2> tree;
  20. tree.init(V,F);
  21. Eigen::RowVector2d q(0.5,0.5);
  22. std::vector<int> r = tree.find(V,F,q);
  23. REQUIRE(r.size() == 2);
  24. REQUIRE(r[0] == 0);
  25. REQUIRE(r[1] == 1);
  26. }
  27. TEST_CASE("AABB: find_3d", "[igl]")
  28. {
  29. Eigen::MatrixXd V(7,3);
  30. V << 0,0,1,
  31. 1,0,1,
  32. 0,1,1,
  33. 2,1,1,
  34. 2,2,1,
  35. 1,2,1,
  36. 0,0,0;
  37. Eigen::MatrixXi F(4,4);
  38. F <<
  39. 0,1,2,6,
  40. 1,3,2,6,
  41. 3,4,5,6,
  42. 3,5,1,6;
  43. igl::AABB<Eigen::MatrixXd,3> tree;
  44. tree.init(V,F);
  45. Eigen::RowVector3d q(0.5,0.5,1.0);
  46. std::vector<int> r = tree.find(V,F,q);
  47. REQUIRE(r.size() == 2);
  48. REQUIRE(r[0] == 0);
  49. REQUIRE(r[1] == 1);
  50. }