readOBJ.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <test_common.h>
  2. #include <iostream>
  3. #include <string>
  4. #include <tuple>
  5. TEST_CASE("readOBJ: simple", "[igl]")
  6. {
  7. Eigen::MatrixXd V;
  8. Eigen::MatrixXi F;
  9. // wait... so this is actually testing test_common::load_mesh not readOBJ
  10. // directly...
  11. test_common::load_mesh("cube.obj", V, F);
  12. REQUIRE (V.rows() == 8);
  13. REQUIRE (F.rows() == 12);
  14. }
  15. TEST_CASE("readOBJ: Obj with material", "[igl]")
  16. {
  17. std::vector<std::vector<double > > V;
  18. std::vector<std::vector<double > > TC;
  19. std::vector<std::vector<double > > N;
  20. std::vector<std::vector<int > > F;
  21. std::vector<std::vector<int > > FTC;
  22. std::vector<std::vector<int > > FN;
  23. std::vector<std::tuple<std::string, int, int>> FM;
  24. test_common::load_obj_with_material<double, int>("cubewithmaterial.obj", V, TC, N, F, FTC, FN, FM);
  25. REQUIRE (V.size() == 8);
  26. REQUIRE (F.size() == 6);
  27. for ( const auto& i : FM ) {
  28. std::cout << "material ";
  29. std::cout << std::get<0>(i) << ' ';
  30. std::cout << "fstart ";
  31. std::cout << std::get<1>(i) << ' ';
  32. std::cout << "fend ";
  33. std::cout << std::get<2>(i) << ' ';
  34. std::cout << std::endl;
  35. }
  36. REQUIRE (FM.size() == 2);
  37. }