vtk中大致有三种时间响应机制:
- command/observer模式之callback function
vtk中的command/observer模式是最常用的,也是各种处理方式的基础。这里首先介绍如何使用callback function的方法:
void KeyPressCallbackFunction ( vtkObject* caller, long unsigned int eventId, void* clientData, void* callData )
{
vtkRenderWindowInteractor *iren = static_cast<vtkRenderWindowInteractor*>(caller);// 指向调用这个callback函数的对象
vtkBoxWidget *tempWidget = static_cast<vtkBoxWidget*>(clientData);
tempWidget->GetTransform(inverse);
vtkSmartPointer<vtkMyCallback> callback = vtkSmartPointer<vtkMyCallback>::New();
tempWidget->AddObserver(vtkCommand::InteractionEvent, callback);
std::cout << "Pressed: " << iren->GetKeySym() << std::endl;
}
int main()
{
//…