diff --git a/bindings/SofaRuntime/src/SofaPython3/SofaRuntime/Module_SofaRuntime.cpp b/bindings/SofaRuntime/src/SofaPython3/SofaRuntime/Module_SofaRuntime.cpp index db70b8745..c273807ac 100644 --- a/bindings/SofaRuntime/src/SofaPython3/SofaRuntime/Module_SofaRuntime.cpp +++ b/bindings/SofaRuntime/src/SofaPython3/SofaRuntime/Module_SofaRuntime.cpp @@ -132,15 +132,25 @@ PYBIND11_MODULE(SofaRuntime, m) { { std::string configPluginPath = "plugin_list.conf"; std::string defaultConfigPluginPath = "plugin_list.conf.default"; + + sofa::type::vector loadedPlugins; if (sofa::helper::system::PluginRepository.findFile(configPluginPath, "", nullptr)) { msg_info("SofaRuntime") << "Loading automatically plugin list in " << configPluginPath; - sofa::helper::system::PluginManager::getInstance().readFromIniFile(configPluginPath); + sofa::helper::system::PluginManager::getInstance().readFromIniFile(configPluginPath, loadedPlugins); } if (sofa::helper::system::PluginRepository.findFile(defaultConfigPluginPath, "", nullptr)) { msg_info("SofaRuntime") << "Loading automatically plugin list in " << defaultConfigPluginPath; - sofa::helper::system::PluginManager::getInstance().readFromIniFile(defaultConfigPluginPath); + sofa::helper::system::PluginManager::getInstance().readFromIniFile(defaultConfigPluginPath, loadedPlugins); + } + + if (sofa::core::ObjectFactory* objectFactory = sofa::core::ObjectFactory::getInstance()) + { + for (const auto& pluginName : loadedPlugins) + { + objectFactory->registerObjectsFromPlugin(pluginName); + } } }, "automatically load plugins from configuration files");