diff --git a/VirtualRobot/Import/MeshImport/AssimpReader.cpp b/VirtualRobot/Import/MeshImport/AssimpReader.cpp index dbe01e17a72418dbae2b7d59aa3d7a3e12f36e34..9f58c8d155a1b92a24d32973a8fe96ef09f7d482 100644 --- a/VirtualRobot/Import/MeshImport/AssimpReader.cpp +++ b/VirtualRobot/Import/MeshImport/AssimpReader.cpp @@ -1,3 +1,5 @@ +#include <filesystem> + #include "AssimpReader.h" #include <VirtualRobot/Visualization/TriMeshModel.h> #include <VirtualRobot/ManipulationObject.h> @@ -170,6 +172,24 @@ namespace VirtualRobot }(); return extensions; } + bool AssimpReader::can_load(const std::string& file) + { + std::filesystem::path p{file}; + if (!p.has_extension()) + { + return false; + } + std::string ext = p.extension().string().substr(1); + for (auto& c : ext) + { + c = std::toupper(c); + } + if (ext.empty()) + { + return false; + } + return get_extensions().find(ext) != std::string::npos; + } bool AssimpReader::readFileAsTriMesh(const std::string& filename, const TriMeshModelPtr& t) { diff --git a/VirtualRobot/Import/MeshImport/AssimpReader.h b/VirtualRobot/Import/MeshImport/AssimpReader.h index 1de2490d988788f7bbf8acdcb03ac65a777bd6a4..2dfbe866aa4ca1d8bb7088939d18205dd17df3ab 100644 --- a/VirtualRobot/Import/MeshImport/AssimpReader.h +++ b/VirtualRobot/Import/MeshImport/AssimpReader.h @@ -21,6 +21,7 @@ namespace VirtualRobot return "Open Asset Import Library"; } static std::string get_extensions(); + static bool can_load(const std::string& file); // read data and store it to trimesh bool readFileAsTriMesh(const std::string& _filename, const TriMeshModelPtr& t);