@@ -43,6 +43,9 @@ using sofa::simulation::Simulation;
4343#include < sofa/simulation/init.h>
4444#include < sofa/simulation/common/init.h>
4545#include < sofa/simulation/graph/init.h>
46+ #include < sofa/simulation/SceneCheckerVisitor.h>
47+ #include < sofa/simulation/SceneCheckMainRegistry.h>
48+ #include < sofa/helper/system/PluginManager.h>
4649
4750namespace py = pybind11;
4851
@@ -64,7 +67,27 @@ PYBIND11_MODULE(Simulation, simulation)
6467 simulation.def (" print" , [](Node* n){ sofa::simulation::node::print (n); }, sofapython3::doc::simulation::print);
6568 simulation.def (" animate" , [](Node* n, SReal dt=0.0 ){ sofa::simulation::node::animate (n, dt); },sofapython3::doc::simulation::animate);
6669 simulation.def (" init" , [](Node* n){ sofa::simulation::node::init (n); }, sofapython3::doc::simulation::init);
67- simulation.def (" initRoot" , [](Node* n){ sofa::simulation::node::initRoot (n); }, sofapython3::doc::simulation::initRoot);
70+ simulation.def (" initRoot" , [](Node* n)
71+ {
72+ auto & pluginManager = sofa::helper::system::PluginManager::getInstance ();
73+ auto res = pluginManager.loadPlugin (" SceneChecking" );
74+ if (res == sofa::helper::system::PluginManager::PluginLoadStatus::SUCCESS )
75+ {
76+ sofa::simulation::SceneCheckerVisitor sceneCheckerVisitor;
77+
78+ for (const auto & sceneCheck : sofa::simulation::SceneCheckMainRegistry::getRegisteredSceneChecks ())
79+ {
80+ sceneCheckerVisitor.addCheck (sceneCheck);
81+ }
82+
83+ sceneCheckerVisitor.validate (n, nullptr );
84+ }
85+ else
86+ {
87+ msg_warning (" Could not load SceneChecking, no scene check will be performed." );
88+ }
89+ sofa::simulation::node::initRoot (n);
90+ }, sofapython3::doc::simulation::initRoot);
6891 simulation.def (" initVisual" , [](Node* n){ n->getVisualLoop ()->initStep (sofa::core::visual::VisualParams::defaultInstance ()); }, sofapython3::doc::simulation::initVisual);
6992 simulation.def (" reset" , [](Node* n){ sofa::simulation::node::reset (n); }, sofapython3::doc::simulation::reset);
7093
0 commit comments