+ public:
+ virtual char const *GetClassName() const { return "vtkgdcmObserver";}
+ static vtkgdcmObserver *New()
+ { return new vtkgdcmObserver; }
+ vtkgdcmObserver()
+ {
+ this->ImageViewer = NULL;
+ }
+ virtual void Execute(vtkObject *, unsigned long event, void* )
+ {
+ if ( this->ImageViewer )
+ {
+ if ( event == vtkCommand::CharEvent )
+ {
+ int max = ImageViewer->GetWholeZMax();
+ int slice = (ImageViewer->GetZSlice() + 1 ) % ++max;
+ ImageViewer->SetZSlice( slice );
+ ImageViewer->GetRenderer()->ResetCameraClippingRange();
+ ImageViewer->Render();
+ }
+ }
+ }
+ vtkImageViewer2 *ImageViewer;
+};