vtkjs 事件系统一 vtkRenderWindowInteractor

本文详细介绍了VTK库中RenderWindowInteractor如何通过command/observer设计模式处理事件,包括事件的初始化绑定、事件方法生成、DOM事件的绑定以及macro.event方法在事件系统中的作用。重点展示了如何创建和响应各类事件,如StartAnimation、MouseMove等。

Interactor中的事件系统的使用

 

vtkRenderWindowInteractor routes events through VTK's command/observer

design pattern. That is, when vtkRenderWindowInteractor (actually, one of

its subclasses) sees an event, it translates it into

a VTK event using the InvokeEvent() method. Afterward, any vtkInteractorObservers

registered for that event are expected to respond appropriately.

 

1.Interactor首先在初始化中对所有事件进行设计模式相关方法的绑定

const handledEvents = [
  'StartAnimation',
  'Animation',
  'EndAnimation',
  'StartMouseMove',
  'MouseMove',
  'EndMouseMove',
  'LeftButtonPress',
...


export function extend(publicAPI, model, initialValues = {}) {
...
macro.event(publicAPI, model, 'RenderEvent');
  handledEvents.forEach((eventName) =>
    macro.event(publicAPI, model, eventName)
  );
...
}

macro.event注册后会生成invokeEvent(),onEvent(callback,priority),delete()三个方法来分发事件,注册事件钩子,

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值