]> Creatis software - FrontAlgorithms.git/blob - plugins/fpa/BaseImageFilter.h
...
[FrontAlgorithms.git] / plugins / fpa / BaseImageFilter.h
1 #ifndef __FPAPLUGINS__BASEIMAGEFILTER__H__
2 #define __FPAPLUGINS__BASEIMAGEFILTER__H__
3
4 #include <fpa/fpaPlugins_Export.h>
5 #include <cpPlugins/ProcessObject.h>
6
7 #include <cpExtensions/QT/SimpleMPRWidget.h>
8 #include <vtkRenderWindowInteractor.h>
9
10 namespace fpaPlugins
11 {
12   /**
13    */
14   class fpaPlugins_EXPORT BaseImageFilter
15     : public cpPlugins::ProcessObject
16   {
17   public:
18     typedef BaseImageFilter                 Self;
19     typedef cpPlugins::ProcessObject        Superclass;
20     typedef itk::SmartPointer< Self >       Pointer;
21     typedef itk::SmartPointer< const Self > ConstPointer;
22
23     typedef cpExtensions::QT::SimpleMPRWidget TMPRWidget;
24
25   public:
26     itkTypeMacro( BaseImageFilter, cpPlugins::ProcessObject );
27     cpPlugins_Id_Macro( BaseImageFilter, fpaImageAlgorithm );
28
29   public:
30     virtual bool IsInteractive( ) override;
31     virtual void SetInteractionObjects(
32       const std::vector< void* >& objs
33       ) override;
34
35   protected:
36     BaseImageFilter( );
37     virtual ~BaseImageFilter( );
38
39     template< class _TFilter >
40       inline _TFilter* _ConfigureFilter( );
41
42     template< class _TFilter >
43       inline void _ExecuteFilter( _TFilter* filter );
44
45     template< class _TFilter >
46       inline void _ConfigureDebugger( _TFilter* filter );
47
48     template< class _TFilter >
49       inline void _DeconfigureDebugger( _TFilter* filter );
50
51   private:
52     // Purposely not implemented.
53     BaseImageFilter( const Self& other );
54     Self& operator=( const Self& other );
55
56   protected:
57     TMPRWidget*                m_MPRViewer;
58     vtkRenderWindowInteractor* m_SingleInteractor;
59     std::set< unsigned long > m_Observers;
60   };
61
62 } // ecapseman
63
64 #include "BaseImageFilter.hxx"
65
66 #endif // __FPAPLUGINS__BASEIMAGEFILTER__H__
67
68 // eof - $RCSfile$