12 #include <mrpt/core/get_env.h>
13 #include <mrpt/system/filesystem.h>
14 #include <mrpt/version.h>
19 using namespace mvsim;
28 const std::string& localFileName,
const Options& options)
31 if (
auto it =
cache.find(localFileName); it !=
cache.end())
return it->second;
34 auto m =
cache[localFileName] = mrpt::opengl::CAssimpModel::Create();
36 ASSERT_FILE_EXISTS_(localFileName);
39 int loadFlags = mrpt::opengl::CAssimpModel::LoadFlags::RealTimeMaxQuality |
40 mrpt::opengl::CAssimpModel::LoadFlags::FlipUVs;
42 if (options.
modelColor != mrpt::img::TColor::white())
43 loadFlags |= mrpt::opengl::CAssimpModel::LoadFlags::IgnoreMaterialColor;
47 if (mrpt::get_env<bool>(
"MVSIM_LOAD_MODELS_VERBOSE",
false))
48 loadFlags |= mrpt::opengl::CAssimpModel::LoadFlags::Verbose;
50 m->loadScene(localFileName, loadFlags);
52 m->cullFaces(mrpt::typemeta::TEnumType<mrpt::opengl::TCullFace>::name2value(options.
modelCull));
54 #if MRPT_VERSION >= 0x20e01 // Feature added in MRPT 2.14.1
55 m->split_triangles_rendering_bbox(options.
splitSize);