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 41eb2e711..b56ec5abd 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 @@ -30,6 +30,9 @@ #include "assimp_loader.hpp" +#include +#include +#include #include #include #include @@ -245,6 +248,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 dfad591af..46b4443b7 100644 --- a/rviz_rendering/src/rviz_rendering/ogre_logging.cpp +++ b/rviz_rendering/src/rviz_rendering/ogre_logging.cpp @@ -66,6 +66,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;