#include <fpa/VTK/ImageMPR.h>
+#include <vtkCommand.h>
#include <vtkInteractorStyleSwitch.h>
+#include <vtkPickingManager.h>
+
+class vtkUpdateCallback
+ : public vtkCommand
+{
+public:
+ static vtkUpdateCallback *New()
+ {
+ return new vtkUpdateCallback;
+ }
+ virtual void Execute(vtkObject *caller, unsigned long eventId, void*
+ arguments)
+ {
+ vtkRenderWindowInteractor* iren =
+ static_cast< vtkRenderWindowInteractor* >( caller );
+ if( caller == NULL )
+ return;
+
+ switch( iren->GetKeyCode( ) )
+ {
+ case 'x':
+ case 'X':
+ {
+ bool eSeed = ( this->SeedWidget->GetProcessEvents( ) == 1 );
+ if( eSeed )
+ {
+ this->SeedWidget->ProcessEventsOff( );
+ this->WidgetX->InteractionOn( );
+ this->WidgetY->InteractionOn( );
+ this->WidgetZ->InteractionOn( );
+ }
+ else
+ {
+ this->SeedWidget->ProcessEventsOn( );
+ this->WidgetX->InteractionOff( );
+ this->WidgetY->InteractionOff( );
+ this->WidgetZ->InteractionOff( );
+
+ } // fi
+ }
+ break;
+ default:
+ break;
+
+ } // hctiws
+ }
+
+public:
+ vtkImagePlaneWidget* WidgetX;
+ vtkImagePlaneWidget* WidgetY;
+ vtkImagePlaneWidget* WidgetZ;
+ vtkSeedWidget2* SeedWidget;
+};
// -------------------------------------------------------------------------
fpa::VTK::ImageMPR::
ImageMPR( )
{
- // vtkSmartPointer< vtkImageData > m_Image;
-
this->m_Outline = vtkSmartPointer< vtkOutlineSource >::New( );
this->m_OutlineMapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
this->m_OutlineActor = vtkSmartPointer< vtkActor >::New( );
this->m_Renderer = vtkSmartPointer< vtkRenderer >::New( );
this->m_Window = vtkSmartPointer< vtkRenderWindow >::New( );
this->m_Interactor = vtkSmartPointer< vtkRenderWindowInteractor >::New( );
+
+
+
+
+
+
+ handlePointRep3D =
+ vtkSmartPointer<vtkPointHandleRepresentation3D>::New();
+ //handlePointRep3D->AllOn();
+ handlePointRep3D->GetProperty()->SetColor(1.,0.,1.);
+ seedRep =
+ vtkSmartPointer<vtkSeedRepresentation>::New();
+ seedRep->SetHandleRepresentation(handlePointRep3D);
+ seedWidget = vtkSmartPointer<vtkSeedWidget2>::New();
+
+ seedWidget->SetRepresentation(seedRep);
+
+ this->m_WidgetX->KeyPressActivationOff( );
+ this->m_WidgetY->KeyPressActivationOff( );
+ this->m_WidgetZ->KeyPressActivationOff( );
+ seedWidget->KeyPressActivationOff( );
+
+ // this->m_Interactor->GetPickingManager( )->AddPicker( this->m_Picker );
+
+
+ vtkUpdateCallback* onUpdate = vtkUpdateCallback::New();
+ onUpdate->WidgetX = this->m_WidgetX;
+ onUpdate->WidgetY = this->m_WidgetY;
+ onUpdate->WidgetZ = this->m_WidgetZ;
+ onUpdate->SeedWidget = this->seedWidget;
+
+ this->m_Interactor->AddObserver(vtkCommand::KeyPressEvent, onUpdate);
}
// -------------------------------------------------------------------------
this->m_WidgetX->SetInteractor( this->m_Interactor );
this->m_WidgetY->SetInteractor( this->m_Interactor );
this->m_WidgetZ->SetInteractor( this->m_Interactor );
+ seedWidget->SetInteractor(this->m_Interactor);
+
+ this->m_WidgetX->On( );
+ this->m_WidgetY->On( );
+ this->m_WidgetZ->On( );
+ seedWidget->On( );
+ seedWidget->ProcessEventsOff( );
+ this->m_Interactor->SetPicker( this->m_Picker );
+ this->m_Interactor->GetPickingManager( )->AddPicker( this->m_Picker );
+ this->m_Interactor->GetPickingManager( )->EnabledOn( );
}
// -------------------------------------------------------------------------