vtk事件響應機制

2021-07-04 00:13:04 字數 1168 閱讀 4758

vtk中大致有三種時間響應機制:

command/observer模式之callback function

vtk中的command/observer模式是最常用的,也是各種處理方式的基礎。這裡首先介紹如何使用callback function的方法:

void keypresscallbackfunction ( vtkobject* caller, long unsigned int eventid, void* clientdata, void* calldata )

int main()

上述**片段中,callback function是主要的呼叫方式。其中caller是呼叫該callback function的物件,通常是renderwindowinteractor,或者其他vtkwidget類;eventid是處理的event代號;clientdata是傳遞到該函式中的資料;calldata是隨著觸發的event一起傳遞的資料。

2.command/observer模式之vtkcommand

這種方法與第一種方法的原理相同,只不過這裡使用不是乙個callback function,而是繼承了vtkcommand類來實現自己需要的操作。具體的**如下:

class vtkmycallback : public vtkcommand

virtual void execute(vtkobject *caller, unsigned long, void*)

};int main()

interactor style

第三種方法是繼承已有的interactor style來對自己希望設定的事件作出對應的響應,該方法可以看作是對若干個event的集合,缺點是只能對renderwindowinteractor進行設定。該方法的**片段如下:

class mystyle : public vtkinteractorstyleimage

virtual void onrightbuttondown()

virtual void onrightbuttonup()

virtual void onmousemove()

virtual void onleftbuttonup()

};

C 事件機制及響應方法

1.委派的實現過程。首先來看一下委派,委派其實就是方法的傳遞,並不定義方法的實現。事件其實就是標準化了的委派,為了事件處理過程特製的 稍微專業化一點的組播委派 多點委派 下面舉乙個例子,我覺得把委派的例子和事件的例子比較,會比較容易理解。using system class class1 publi...

iOS事件的傳遞和響應機制

1.touch events 觸控事件 2.motion events 運動事件 3.remote events 遠端事件 4.press events 按壓事件 1.事件產生和傳遞 2.找到合適的view處理 3.處理事件或者捨棄 這裡主要是說觸控事件。響應者物件 可以處理事件的物件,即uires...

Linux 新的事件等待 響應機制eventfd

常用的程序 執行緒間通訊機制有管道 訊號量 訊息佇列 訊號 共享記憶體 socket等等,其中主要作為程序 執行緒間通知 等待的有管道pipe和socket。從linux 2.6.27版本開始增加了eventfd,主要用於程序或者執行緒間的通訊 如通知 等待機制的實現 注 eventfd用於程序 執...