diff --git a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.cpp b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.cpp index 3fda2e844..ae74a5d41 100644 --- a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.cpp +++ b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.cpp @@ -31,6 +31,9 @@ #include "assimp_loader.hpp" +#include +#include +#include #include #include #include @@ -246,6 +249,18 @@ std::vector AssimpLoader::loadMaterials( const std::string & resource_path, const aiScene * scene) { std::vector material_table_out; + + std::string ext = std::filesystem::path(resource_path).extension().string(); + std::transform(ext.begin(), ext.end(), ext.begin(), + [](unsigned char c) {return std::tolower(c);}); + // STL meshes don't support proper + // materials: use Ogre's default material + if (ext == ".stl" || ext == ".stlb") { + material_table_out.push_back( + Ogre::MaterialManager::getSingleton().getByName("BaseWhiteNoLighting")); + return material_table_out; + } + for (uint32_t i = 0; i < scene->mNumMaterials; i++) { std::string material_name; material_name = resource_path + "Material" + std::to_string(i); diff --git a/rviz_rendering/src/rviz_rendering/ogre_logging.cpp b/rviz_rendering/src/rviz_rendering/ogre_logging.cpp index 8be482b86..f291a1af8 100644 --- a/rviz_rendering/src/rviz_rendering/ogre_logging.cpp +++ b/rviz_rendering/src/rviz_rendering/ogre_logging.cpp @@ -67,6 +67,9 @@ class CustomOgreLogListener : public Ogre::LogListener case Ogre::LogMessageLevel::LML_NORMAL: RVIZ_RENDERING_LOG_INFO(message.c_str()); break; + case Ogre::LogMessageLevel::LML_WARNING: + RVIZ_RENDERING_LOG_WARNING(message.c_str()); + break; case Ogre::LogMessageLevel::LML_CRITICAL: RVIZ_RENDERING_LOG_ERROR(message.c_str()); break;