diff --git a/SofaKernel/modules/SofaCore/src/sofa/core/loader/MeshLoader.cpp b/SofaKernel/modules/SofaCore/src/sofa/core/loader/MeshLoader.cpp index 80b971932c1..a70ef22053e 100644 --- a/SofaKernel/modules/SofaCore/src/sofa/core/loader/MeshLoader.cpp +++ b/SofaKernel/modules/SofaCore/src/sofa/core/loader/MeshLoader.cpp @@ -197,12 +197,8 @@ void MeshLoader::parse(sofa::core::objectmodel::BaseObjectDescription* arg) d_scale.setValue(d_scale.getValue()*s); } - bool success = false; - if (canLoad()) - success = load(/*m_filename.getFullPath().c_str()*/); - // File not loaded, component is set to invalid - if (!success) + if (!canLoad()) d_componentState.setValue(sofa::core::objectmodel::ComponentState::Invalid); } diff --git a/modules/SofaGeneralLoader/src/SofaGeneralLoader/StringMeshCreator.cpp b/modules/SofaGeneralLoader/src/SofaGeneralLoader/StringMeshCreator.cpp index 2036414a7de..50e0162f95e 100644 --- a/modules/SofaGeneralLoader/src/SofaGeneralLoader/StringMeshCreator.cpp +++ b/modules/SofaGeneralLoader/src/SofaGeneralLoader/StringMeshCreator.cpp @@ -39,6 +39,16 @@ int StringMeshCreatorClass = core::RegisterObject("Procedural creation of a one- StringMeshCreator::StringMeshCreator(): MeshLoader() , resolution( initData(&resolution,(unsigned)2,"resolution","Number of vertices")) { + addUpdateCallback("updateResolution", {&resolution}, [this](const core::DataTracker& ) + { + if(load()) + { + return sofa::core::objectmodel::ComponentState::Valid; + } + + return sofa::core::objectmodel::ComponentState::Invalid; + + }, {&d_positions, &d_edges}); } void StringMeshCreator::doClearBuffers()