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;
47 // -----------------------------------------------------------------------
49 CPPLUGINS_INHERIT_PROVIDER( BaseImageFilter );
54 // -------------------------------------------------------------------------
55 #include <fpa/VTK/Image2DObserver.h>
56 //#include <fpa/VTK/Image3DObserver.h>
57 #include <cpPlugins/Interface/SimpleMPRWidget.h>
58 #include <vtkRenderWindowInteractor.h>
60 // -------------------------------------------------------------------------
62 void fpaPlugins::BaseImageFilter::
63 _ConfigureDebugger( F* filter )
65 typedef typename F::TInputImage _I;
66 typedef fpa::VTK::Image2DObserver< F, vtkRenderWindow > _2D;
67 // typedef fpa::VTK::Image3DObserver< F, vtkRenderWindow > _3D;
69 this->m_Observers.clear( );
70 if( this->m_Parameters->GetBool( "VisualDebug" ) )
72 if( this->m_MPRViewer != NULL )
74 if( _I::ImageDimension == 2 )
76 auto iren = this->m_MPRViewer->GetInteractor( 2 );
79 typename _2D::Pointer debugger = _2D::New( );
80 debugger->SetRenderWindow( iren->GetRenderWindow( ) );
81 debugger->SetRenderPercentage( 0.01 );
82 this->m_Observers.insert(
83 filter->AddObserver( itk::AnyEvent( ), debugger )
85 filter->ThrowEventsOn( );
89 else if( _I::ImageDimension == 3 )
91 // this->m_MPRViewer->GetInteractor( 3 );
97 if( this->m_SingleInteractor.GetPointer( ) != NULL )
99 if( _I::ImageDimension == 2 )
102 else if( _I::ImageDimension == 3 )
111 // -------------------------------------------------------------------------
113 void fpaPlugins::BaseImageFilter::
114 _DeconfigureDebugger( F* filter )
118 auto oIt = this->m_Observers.begin( );
119 for( ; oIt != this->m_Observers.end( ); ++oIt )
120 filter->RemoveObserver( *oIt );
123 this->m_Observers.clear( );
126 #endif // __FPAPLUGINS__BASEIMAGEFILTER__H__