]> Creatis software - cpPlugins.git/blob - plugins/ImageBooleanFilters/NotImageFilter.cxx
149dc24f9f23e8068dd5b1ed5216644e954dab16
[cpPlugins.git] / plugins / ImageBooleanFilters / NotImageFilter.cxx
1 #include <ImageBooleanFilters/NotImageFilter.h>
2 #include <cpPlugins/DataObjects/Image.h>
3 #include <cpPlugins/DataObjects/Image_Demanglers.h>
4
5 #include <itkNotImageFilter.h>
6
7 // -------------------------------------------------------------------------
8 cpPluginsImageBooleanFilters::NotImageFilter::
9 NotImageFilter( )
10   : Superclass( )
11 {
12   typedef cpPlugins::DataObjects::Image _TImage;
13
14   this->_ConfigureInput< _TImage >( "Input", true, false );
15   this->_ConfigureOutput< _TImage >( "Output" );
16 }
17
18 // -------------------------------------------------------------------------
19 cpPluginsImageBooleanFilters::NotImageFilter::
20 ~NotImageFilter( )
21 {
22 }
23
24 // -------------------------------------------------------------------------
25 void cpPluginsImageBooleanFilters::NotImageFilter::
26 _GenerateData( )
27 {
28   auto o = this->GetInputData( "Input" );
29   cpPlugins_Demangle_Image_IntPixels_AllDims_1( o, _GD0 )
30     this->_Error( "Invalid input image." );
31 }
32
33 // -------------------------------------------------------------------------
34 template< class _TImage >
35 void cpPluginsImageBooleanFilters::NotImageFilter::
36 _GD0( _TImage* image )
37 {
38   typedef itk::NotImageFilter< _TImage, _TImage > _TFilter;
39
40   // Configure filter
41   auto filter = this->_CreateITK< _TFilter >( );
42   filter->SetInput( image );
43   filter->Update( );
44
45   // Connect output
46   this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
47 }
48
49 // eof - $RCSfile$