You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
3.2 KiB
73 lines
3.2 KiB
1 year ago
|
#include <test_common.h>
|
||
|
|
||
|
#include <catch2/catch.hpp>
|
||
|
#include <igl/MshLoader.h>
|
||
|
#include <igl/MshSaver.h>
|
||
|
|
||
|
TEST_CASE("MshSaver","[igl]")
|
||
|
{
|
||
|
igl::MshLoader msh_loader1(test_common::data_path("sphere_lowres_TMS_1-0001_Magstim_70mm_Fig8_nii_scalar.msh"));
|
||
|
REQUIRE( msh_loader1.is_element_map_identity());
|
||
|
|
||
|
igl::MshSaver msh_saver("test_binary_sphere.msh",true);
|
||
|
msh_saver.save_mesh( msh_loader1.get_nodes(),
|
||
|
msh_loader1.get_elements(),
|
||
|
msh_loader1.get_elements_lengths(),
|
||
|
msh_loader1.get_elements_types(),
|
||
|
msh_loader1.get_elements_tags()[1]);
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_node_fields_names().size();++i)
|
||
|
{
|
||
|
if(msh_loader1.get_node_fields_components()[i]==3)
|
||
|
msh_saver.save_vector_field(msh_loader1.get_node_fields_names()[i],msh_loader1.get_node_fields()[i]);
|
||
|
else
|
||
|
msh_saver.save_scalar_field(msh_loader1.get_node_fields_names()[i],msh_loader1.get_node_fields()[i]);
|
||
|
}
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_element_fields_names().size();++i)
|
||
|
{
|
||
|
if(msh_loader1.get_element_fields_components()[i]==3)
|
||
|
msh_saver.save_elem_vector_field(msh_loader1.get_element_fields_names()[i],msh_loader1.get_element_fields()[i]);
|
||
|
else
|
||
|
msh_saver.save_elem_scalar_field(msh_loader1.get_element_fields_names()[i],msh_loader1.get_element_fields()[i]);
|
||
|
}
|
||
|
|
||
|
igl::MshLoader msh_loader("test_binary_sphere.msh");
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_elements().size();++i)
|
||
|
REQUIRE(msh_loader.get_elements()[i] == msh_loader1.get_elements()[i]);
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_elements_lengths().size();++i)
|
||
|
REQUIRE(msh_loader.get_elements_lengths()[i] == msh_loader1.get_elements_lengths()[i]);
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_elements_types().size();++i)
|
||
|
REQUIRE(msh_loader.get_elements_types()[i] == msh_loader1.get_elements_types()[i]);
|
||
|
|
||
|
for(size_t j=0;j<2;++j)
|
||
|
for(size_t i=0;i<msh_loader1.get_elements_tags()[j].size();++i)
|
||
|
REQUIRE(msh_loader.get_elements_tags()[j][i] == msh_loader1.get_elements_tags()[j][i]);
|
||
|
|
||
|
REQUIRE(msh_loader.get_node_fields_names().size() == msh_loader1.get_node_fields_names().size());
|
||
|
|
||
|
for(size_t i=0;i<msh_loader1.get_node_fields_names().size();++i)
|
||
|
{
|
||
|
REQUIRE(msh_loader.get_node_fields_names()[i] == msh_loader1.get_node_fields_names()[i]);
|
||
|
REQUIRE(msh_loader.get_node_fields_components()[i] == msh_loader.get_node_fields_components()[i]);
|
||
|
|
||
|
for(size_t j=0;j<msh_loader1.get_node_fields()[i].size();++j)
|
||
|
REQUIRE(msh_loader1.get_node_fields()[i][j] == msh_loader.get_node_fields()[i][j]);
|
||
|
}
|
||
|
|
||
|
REQUIRE(msh_loader.get_element_fields_names().size() == msh_loader1.get_element_fields_names().size());
|
||
|
for(size_t i=0;i<msh_loader1.get_element_fields_names().size();++i)
|
||
|
{
|
||
|
REQUIRE(msh_loader.get_element_fields_names()[i] == msh_loader1.get_element_fields_names()[i]);
|
||
|
REQUIRE(msh_loader.get_element_fields_components()[i] == msh_loader1.get_element_fields_components()[i]);
|
||
|
|
||
|
for(size_t j=0;j<msh_loader1.get_element_fields()[i].size();++j)
|
||
|
REQUIRE(msh_loader1.get_element_fields()[i][j] == msh_loader.get_element_fields()[i][j]);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|