#ifndef __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__ #define __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__ #include #include #include #include /* TODO #include #include #include #include */ // Forward definitions class vtkCommand; class vtkImageActor; namespace cpExtensions { namespace Interaction { /** */ class cpExtensions_EXPORT ImageInteractorStyle : public BaseInteractorStyle { public: typedef ImageInteractorStyle Self; vtkTypeMacro( ImageInteractorStyle, BaseInteractorStyle ); // Callbacks types typedef Superclass::TMouseCommand TMouseCommand; typedef Superclass::TMouseWheelCommand TMouseWheelCommand; typedef Superclass::TKeyCommand TKeyCommand; typedef Superclass::TVoidCommand TVoidCommand; typedef Superclass::TMouseMoveCommand TMouseMoveCommand; typedef Superclass::TMouseClickCommand TMouseClickCommand; typedef Superclass::TMouseDoubleClickCommand TMouseDoubleClickCommand; typedef Superclass::TExposeCommand TExposeCommand; typedef Superclass::TConfigureCommand TConfigureCommand; typedef Superclass::TEnterCommand TEnterCommand; typedef Superclass::TLeaveCommand TLeaveCommand; // Widgets /* TODO struct TSeedWidget { vtkSmartPointer< vtkImageActorPointPlacer > Placer; vtkSmartPointer< vtkPointHandleRepresentation3D > Handle; vtkSmartPointer< vtkSeedRepresentation > Representation; vtkSmartPointer< SeedWidget > Widget; TSeedWidget( vtkRenderWindowInteractor* interactor, vtkImageActor* actor ); void On( ); void Off( ); }; */ public: static Self* New( ); virtual void SetCurrentRenderer( vtkRenderer* r ) VTK_OVERRIDE; // Data for local picker virtual void AssociateImageActor( vtkImageActor* actor ); // Widgets /* TODO void SeedWidgetOn( ); void SeedWidgetOff( ); void SetSeedWidgetCommand( vtkCommand* cmd ); unsigned int GetNumberOfSeeds( ) const; void GetSeedAsPoint( unsigned int id, double pos[ 3 ] ) const; void GetSeedAsIndex( unsigned int id, int pos[ 3 ] ) const; */ protected: ImageInteractorStyle( ); virtual ~ImageInteractorStyle( ); void _ConfigureCamera( vtkImageActor* actor ); virtual bool _PickPosition( int idx[ 2 ], double pos[ 3 ] ); private: // Purposely not implemented ImageInteractorStyle( const Self& ); Self& operator=( const Self& ); protected: bool m_Configured; vtkSmartPointer< vtkPropPicker > m_PropPicker; /* TODO TSeedWidget* m_SeedWidget; */ }; } // ecapseman } // ecapseman #endif // __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__ // eof - $RCSfile$