MshSaver.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include <test_common.h>
  2. #include <catch2/catch.hpp>
  3. #include <igl/MshLoader.h>
  4. #include <igl/MshSaver.h>
  5. TEST_CASE("MshSaver","[igl]")
  6. {
  7. igl::MshLoader msh_loader1(test_common::data_path("sphere_lowres_TMS_1-0001_Magstim_70mm_Fig8_nii_scalar.msh"));
  8. REQUIRE( msh_loader1.is_element_map_identity());
  9. igl::MshSaver msh_saver("test_binary_sphere.msh",true);
  10. msh_saver.save_mesh( msh_loader1.get_nodes(),
  11. msh_loader1.get_elements(),
  12. msh_loader1.get_elements_lengths(),
  13. msh_loader1.get_elements_types(),
  14. msh_loader1.get_elements_tags()[1]);
  15. for(size_t i=0;i<msh_loader1.get_node_fields_names().size();++i)
  16. {
  17. if(msh_loader1.get_node_fields_components()[i]==3)
  18. msh_saver.save_vector_field(msh_loader1.get_node_fields_names()[i],msh_loader1.get_node_fields()[i]);
  19. else
  20. msh_saver.save_scalar_field(msh_loader1.get_node_fields_names()[i],msh_loader1.get_node_fields()[i]);
  21. }
  22. for(size_t i=0;i<msh_loader1.get_element_fields_names().size();++i)
  23. {
  24. if(msh_loader1.get_element_fields_components()[i]==3)
  25. msh_saver.save_elem_vector_field(msh_loader1.get_element_fields_names()[i],msh_loader1.get_element_fields()[i]);
  26. else
  27. msh_saver.save_elem_scalar_field(msh_loader1.get_element_fields_names()[i],msh_loader1.get_element_fields()[i]);
  28. }
  29. igl::MshLoader msh_loader("test_binary_sphere.msh");
  30. for(size_t i=0;i<msh_loader1.get_elements().size();++i)
  31. REQUIRE(msh_loader.get_elements()[i] == msh_loader1.get_elements()[i]);
  32. for(size_t i=0;i<msh_loader1.get_elements_lengths().size();++i)
  33. REQUIRE(msh_loader.get_elements_lengths()[i] == msh_loader1.get_elements_lengths()[i]);
  34. for(size_t i=0;i<msh_loader1.get_elements_types().size();++i)
  35. REQUIRE(msh_loader.get_elements_types()[i] == msh_loader1.get_elements_types()[i]);
  36. for(size_t j=0;j<2;++j)
  37. for(size_t i=0;i<msh_loader1.get_elements_tags()[j].size();++i)
  38. REQUIRE(msh_loader.get_elements_tags()[j][i] == msh_loader1.get_elements_tags()[j][i]);
  39. REQUIRE(msh_loader.get_node_fields_names().size() == msh_loader1.get_node_fields_names().size());
  40. for(size_t i=0;i<msh_loader1.get_node_fields_names().size();++i)
  41. {
  42. REQUIRE(msh_loader.get_node_fields_names()[i] == msh_loader1.get_node_fields_names()[i]);
  43. REQUIRE(msh_loader.get_node_fields_components()[i] == msh_loader.get_node_fields_components()[i]);
  44. for(size_t j=0;j<msh_loader1.get_node_fields()[i].size();++j)
  45. REQUIRE(msh_loader1.get_node_fields()[i][j] == msh_loader.get_node_fields()[i][j]);
  46. }
  47. REQUIRE(msh_loader.get_element_fields_names().size() == msh_loader1.get_element_fields_names().size());
  48. for(size_t i=0;i<msh_loader1.get_element_fields_names().size();++i)
  49. {
  50. REQUIRE(msh_loader.get_element_fields_names()[i] == msh_loader1.get_element_fields_names()[i]);
  51. REQUIRE(msh_loader.get_element_fields_components()[i] == msh_loader1.get_element_fields_components()[i]);
  52. for(size_t j=0;j<msh_loader1.get_element_fields()[i].size();++j)
  53. REQUIRE(msh_loader1.get_element_fields()[i][j] == msh_loader.get_element_fields()[i][j]);
  54. }
  55. }