1 #ifndef __FPAPLUGINS__BASEIMAGEFILTER__H__
2 #define __FPAPLUGINS__BASEIMAGEFILTER__H__
4 #include <fpaPlugins/fpaPlugins_Export.h>
5 #include <cpPlugins/Interface/BaseProcessObjects.h>
11 class fpaPlugins_EXPORT BaseImageFilter
12 : public cpPlugins::Interface::ImageToImageFilter
15 typedef BaseImageFilter Self;
16 typedef cpPlugins::Interface::ImageToImageFilter Superclass;
17 typedef itk::SmartPointer< Self > Pointer;
18 typedef itk::SmartPointer< const Self > ConstPointer;
22 BaseImageFilter, cpPlugins::Interface::ImageToImageFilter
25 BaseImageFilter, FrontPropagationImageAlgorithm
30 virtual ~BaseImageFilter( );
33 void _ConfigureDebugger( F* filter );
36 void _DeconfigureDebugger( F* filter );
39 // Purposely not implemented.
40 BaseImageFilter( const Self& other );
41 Self& operator=( const Self& other );
44 std::set< unsigned long > m_Observers;
49 // -------------------------------------------------------------------------
50 #include <fpa/VTK/Image2DObserver.h>
51 //#include <fpa/VTK/Image3DObserver.h>
52 #include <cpPlugins/Interface/SimpleMPRWidget.h>
53 #include <vtkRenderWindowInteractor.h>
55 // -------------------------------------------------------------------------
57 void fpaPlugins::BaseImageFilter::
58 _ConfigureDebugger( F* filter )
60 typedef typename F::TInputImage _I;
61 typedef fpa::VTK::Image2DObserver< F, vtkRenderWindow > _2D;
62 // typedef fpa::VTK::Image3DObserver< F, vtkRenderWindow > _3D;
64 this->m_Observers.clear( );
65 if( this->m_Parameters->GetBool( "VisualDebug" ) )
67 if( this->m_MPRViewer != NULL )
69 if( _I::ImageDimension == 2 )
71 auto iren = this->m_MPRViewer->GetInteractor( 2 );
74 typename _2D::Pointer debugger = _2D::New( );
75 debugger->SetRenderWindow( iren->GetRenderWindow( ) );
76 debugger->SetRenderPercentage( 0.01 );
77 this->m_Observers.insert(
78 filter->AddObserver( itk::AnyEvent( ), debugger )
80 filter->ThrowEventsOn( );
84 else if( _I::ImageDimension == 3 )
86 // this->m_MPRViewer->GetInteractor( 3 );
92 if( this->m_SingleInteractor != NULL )
94 if( _I::ImageDimension == 2 )
97 else if( _I::ImageDimension == 3 )
106 // -------------------------------------------------------------------------
108 void fpaPlugins::BaseImageFilter::
109 _DeconfigureDebugger( F* filter )
113 auto oIt = this->m_Observers.begin( );
114 for( ; oIt != this->m_Observers.end( ); ++oIt )
115 filter->RemoveObserver( *oIt );
118 this->m_Observers.clear( );
121 #endif // __FPAPLUGINS__BASEIMAGEFILTER__H__