diff --git a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp index 66c5743e5fd..eb8f44554a1 100644 --- a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp +++ b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp @@ -67,8 +67,7 @@ using sofa::simulation::mechanicalvisitor::MechanicalPropagateOnlyPositionVisito #include using sofa::simulation::mechanicalvisitor::MechanicalProjectJacobianMatrixVisitor; -#include -using sofa::simulation::mechanicalvisitor::MechanicalEndIntegrationVisitor; +#include #include using sofa::simulation::mechanicalvisitor::MechanicalResetConstraintVisitor; @@ -666,8 +665,9 @@ void ConstraintAnimationLoop::step ( const core::ExecParams* params, SReal dt ) << "<<<<< End display ConstraintAnimationLoop time." ; } - MechanicalEndIntegrationVisitor endVisitor(params, dt); - node->execute(&endVisitor); + mechanicalvisitor::MechanicalResetForceVisitor resetForceVisitor(params, sofa::core::vec_id::write_access::externalForce); + node->execute(&resetForceVisitor); + node->setTime ( startTime + dt ); node->execute(params); // propagate time diff --git a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp index 2f7954ea96b..aa94b0756f1 100644 --- a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp +++ b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp @@ -61,8 +61,7 @@ using sofa::simulation::mechanicalvisitor::MechanicalVOpVisitor; #include using sofa::simulation::mechanicalvisitor::MechanicalComputeGeometricStiffness; -#include -using sofa::simulation::mechanicalvisitor::MechanicalEndIntegrationVisitor; +#include namespace sofa::component::animationloop { @@ -264,8 +263,8 @@ void FreeMotionAnimationLoop::step(const sofa::core::ExecParams* params, SReal d } } - MechanicalEndIntegrationVisitor endVisitor(params, dt); - node->execute(&endVisitor); + mechanicalvisitor::MechanicalResetForceVisitor resetForceVisitor(params, sofa::core::vec_id::write_access::externalForce); + node->execute(&resetForceVisitor); { SCOPED_TIMER("ProjectAndPropagateXAndV"); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp index 28d40dafdae..5455f690a70 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include @@ -218,8 +218,8 @@ void DefaultAnimationLoop::endIntegration(const core::ExecParams* params, const { { SCOPED_TIMER("endIntegration"); - mechanicalvisitor::MechanicalEndIntegrationVisitor endVisitor(params, dt); - m_node->execute(&endVisitor); + mechanicalvisitor::MechanicalResetForceVisitor resetForceVisitor(params, sofa::core::vec_id::write_access::externalForce); + m_node->execute(&resetForceVisitor); } propagateIntegrateEndEvent(params);