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