diff --git a/src/BeamAdapter/component/controller/BeamAdapterActionController.h b/src/BeamAdapter/component/controller/BeamAdapterActionController.h index d484da9c9..9a98263f6 100644 --- a/src/BeamAdapter/component/controller/BeamAdapterActionController.h +++ b/src/BeamAdapter/component/controller/BeamAdapterActionController.h @@ -59,6 +59,8 @@ class BeamAdapterActionController : public sofa::component::controller::Mechanic /// Method to control the Beam using keyboard and save the actions in @sa d_actions void onKeyPressedEvent(core::objectmodel::KeypressedEvent* kev) override; + void onKeyReleasedEvent(core::objectmodel::KeyreleasedEvent* kev) override; + /// Unused metho for mouse event void onMouseEvent(core::objectmodel::MouseEvent* ev) override { SOFA_UNUSED(ev);} diff --git a/src/BeamAdapter/component/controller/BeamAdapterActionController.inl b/src/BeamAdapter/component/controller/BeamAdapterActionController.inl index 2acdf41be..16c4249eb 100644 --- a/src/BeamAdapter/component/controller/BeamAdapterActionController.inl +++ b/src/BeamAdapter/component/controller/BeamAdapterActionController.inl @@ -23,6 +23,7 @@ #include #include #include +#include namespace beamadapter { @@ -69,10 +70,11 @@ void BeamAdapterActionController::onKeyPressedEvent(core::objectmodel { if (!d_writeMode.getValue()) return; - + /// Control keys for interventonal Radiology simulations: switch (kev->getKey()) { + case 'E': m_currAction = BeamAdapterAction::NO_ACTION; m_exportActions = !m_exportActions; @@ -108,6 +110,16 @@ void BeamAdapterActionController::onKeyPressedEvent(core::objectmodel } +template +void BeamAdapterActionController::onKeyReleasedEvent(core::objectmodel::KeyreleasedEvent* kev) +{ + if (!d_writeMode.getValue()) + return; + + m_currAction = BeamAdapterAction::NO_ACTION; +} + + template void BeamAdapterActionController::onBeginAnimationStep(const double /*dt*/) { @@ -133,7 +145,6 @@ void BeamAdapterActionController::onBeginAnimationStep(const double / } m_lastAction = m_currAction; - m_currAction = BeamAdapterAction::NO_ACTION; } else {