23 main(
int narg,
char **argv)
26 std::string input_original;
27 std::string input_degraded;
29 std::string output_file_path =
"msdm2.output.obj";
33 std::string reader = std::string(argv[1]);
34 input_original = reader;
35 std::string reader2 = std::string(argv[2]);
36 input_degraded = reader2;
40 std::cout <<
"Use of " << argv[0] <<
" is :\n";
41 std::cout <<
"\t" << argv[0]
42 <<
" path/to/original_mesh path/to/degraged_mesh" << std::endl;
44 <<
" will compute the MSDM2 value between the degraded mesh and "
63 auto pm_degrad =
get(boost::vertex_point, m_degraded);
64 auto pm_original =
get(boost::vertex_point, m_original);
69 FaceNormalMap fnm_degrad;
72 std::cout <<
"use existing face-normal map for degraded mesh" << std::endl;
78 std::cout <<
"create face-normal map for degraded mesh" << std::endl;
86 FaceNormalMap fnm_original;
89 std::cout <<
"use existing face-normal map for original mesh" << std::endl;
95 std::cout <<
"create face-normal map for original mesh" << std::endl;
101 m_original, pm_original, fnm_original);
107 VertexMSDM2Map msdm2_pmap;
109 if(
FEVV::has_map(pmaps_bag_degraded, std::string(
"v:msdm2")))
112 boost::any_cast< VertexMSDM2Map >(pmaps_bag_degraded.at(
"v:msdm2"));
117 FEVV::make_vertex_property_map< FEVV::MeshSurface, double >(m_degraded);
118 pmaps_bag_degraded[
"v:msdm2"] = msdm2_pmap;
136 std::cout <<
"Calculated MSDM2 : " <<
msdm2 << std::endl;
138 using VertexColorMap =
144 std::cout <<
"use existing vertex-color map" << std::endl;
149 std::cout <<
"create vertex-color map" << std::endl;
155 double max_msdm2, min_msdm2;
158 m_degraded, msdm2_pmap, min_msdm2, max_msdm2);
161 m_degraded, msdm2_pmap, v_cm, min_msdm2, max_msdm2, lut_courbure_clust);