From 75d3a6ba2cecff01fcfaa999e1bfe378603a16c5 Mon Sep 17 00:00:00 2001 From: Frederick Roy Date: Mon, 13 Apr 2026 13:02:08 +0900 Subject: [PATCH] add custom computebbox for femff instead of the bogus one from stateaccessor --- .../solidmechanics/fem/elastic/FEMForceField.h | 2 ++ .../solidmechanics/fem/elastic/FEMForceField.inl | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h index 42ee6289ca8..c5eb9f4a3ee 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h @@ -67,6 +67,8 @@ class FEMForceField : void draw(const sofa::core::visual::VisualParams*) override; + void computeBBox(const core::ExecParams* params, bool onlyVisible) override; + sofa::Data d_computeForceStrategy; sofa::Data d_computeForceDerivStrategy; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl index 656ffc47d92..bdae03ead2b 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl @@ -236,4 +236,20 @@ void FEMForceField::draw(const sofa::core::visual::Visua m_drawMesh.drawAllElements(vparams->drawTool(), x, this->l_topology.get()); } +template +void FEMForceField::computeBBox(const core::ExecParams* params, bool onlyVisible) +{ + SOFA_UNUSED(params); + + if(!onlyVisible) + return; + + auto* vparams = sofa::core::visual::VisualParams::defaultInstance(); + + if(onlyVisible && !vparams->displayFlags().getShowForceFields()) + return; + + this->f_bbox.setValue(this->mstate->computeBBox()); +} + } // namespace sofa::component::solidmechanics::fem::elastic