mitk 交互器-事件过滤

文章讨论了在使用Mitk交互器调试代码时,发现当DataNode设置为不可见时,EventStateMachine的FilterEvents函数会过滤掉这些事件。作者提出可以重写FilterEvents,以便于不依赖可见节点数据进行交互。
摘要由CSDN通过智能技术生成

之前写交互器在调试代码时发现,如果交互器所设置的mitk::DataNode为不可见的话,交互器会不起作用。今天翻交互器源码时,在基类mitk::EventStateMachine中发现了原因。原来在mitk::EventStateMachine中有个成员函数FilterEvents()把不可见的mitk::DataNode给过滤了。代码如下:

bool mitk::EventStateMachine::FilterEvents(InteractionEvent *interactionEvent, DataNode *dataNode)
{
  if (dataNode == nullptr)
  {
    MITK_WARN << "EventStateMachine: Empty DataNode received along with this Event " << interactionEvent;
    return false;
  }
  bool visible = false;
  if (dataNode->GetBoolProperty("visible", visible, interactionEvent->GetSender()) == false)
  { // property doesn't exist
    return false;
  }
  return visible;
}

好嘛,回头可以把自定义交互器FilterEvents()给重写了,事件交互也不一定非得依赖一个可见的节点数据啊;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值