FIX:mtl name use utf-8 encoding

jira: none
Change-Id: I9a90344ac97f44445d3330c6734fac1372a1350e
This commit is contained in:
zhou.xu 2024-10-25 09:45:59 +08:00 committed by Lane.Wei
parent d0e91b5164
commit 6360fb80be
1 changed files with 9 additions and 4 deletions

View File

@ -8,6 +8,7 @@
#include <string>
#include <boost/log/trivial.hpp>
#include <boost/locale.hpp>
#ifdef _WIN32
#define DIR_SEPARATOR '\\'
@ -45,16 +46,20 @@ bool load_obj(const char *path, TriangleMesh *meshptr, ObjInfo& obj_info, std::s
continue;
}
exist_mtl = true;
bool mtl_name_is_path = false;
boost::filesystem::path mtl_abs_path(mtl_name);
bool mtl_name_is_path = false;
std::wstring wide_mtl_name = boost::locale::conv::to_utf<wchar_t>(mtl_name, "UTF-8");
if (boost::istarts_with(wide_mtl_name,"./")){
boost::replace_first(wide_mtl_name, "./", "");
}
boost::filesystem::path mtl_abs_path(wide_mtl_name);
if (boost::filesystem::exists(mtl_abs_path)) {
mtl_name_is_path = true;
}
boost::filesystem::path mtl_path;
if (!mtl_name_is_path) {
boost::filesystem::path full_path(path);
std::string dir = full_path.parent_path().string();
auto mtl_file = dir + "/" + mtl_name;
auto dir = full_path.parent_path().wstring();
auto mtl_file = dir + L"/" + wide_mtl_name;
boost::filesystem::path temp_mtl_path(mtl_file);
mtl_path = temp_mtl_path;
}