/********************************************************************** 文件名: 8.1_ObserverCommandDemo1.cpp Copyright (c) 张晓东, 罗火灵. All rights reserved. 更多信息请访问: http://www.vtkchina.org (VTK中国) http://blog.csdn.net/www_doling_net (东灵工作室) **********************************************************************/ #include #include #include #include #include #include #include long pressCounts = 0; //第一步,定义回调函数。注意回调函数的签名,不能更改。 void MyCallbackFunc(vtkObject*, unsigned long eid, void* clientdata, void *calldata) { std::cout<<"You have clicked: "<<++pressCounts<<" times."< reader = vtkSmartPointer::New(); reader->SetFileName(argv[1]); vtkSmartPointer viewer = vtkSmartPointer::New(); viewer->SetInput(reader->GetOutput()); vtkSmartPointer interactor = vtkSmartPointer::New(); viewer->SetupInteractor(interactor); viewer->Render(); viewer->GetRenderer()->SetBackground(1.0, 1.0, 1.0); viewer->SetSize(640, 480); viewer->GetRenderWindow()->SetWindowName("ObserverCommandDemo1"); //第二步,设置回调函数。 vtkSmartPointer mouseCallback = vtkSmartPointer::New(); mouseCallback->SetCallback ( MyCallbackFunc ); //第三步,将vtkCallbackCommand对象添加到观察者列表。 interactor->SetRenderWindow(viewer->GetRenderWindow()); interactor->AddObserver(vtkCommand::LeftButtonPressEvent, mouseCallback); interactor->Initialize(); interactor->Start(); return EXIT_SUCCESS; }