]> Creatis software - cpPlugins.git/blob - plugins/ImageFilters/AndImageFilter.cxx
...
[cpPlugins.git] / plugins / ImageFilters / AndImageFilter.cxx
1 #include <plugins/ImageFilters/AndImageFilter.h>
2 #include <cpPlugins/Image.h>
3 #include <cpPlugins_Instances_BitwiseImageFilters.h>
4
5 // -------------------------------------------------------------------------
6 cpPluginsImageFilters::AndImageFilter::
7 AndImageFilter( )
8   : Superclass( )
9 {
10   this->_AddInput( "Input0" );
11   this->_AddInput( "Input1" );
12   this->_AddOutput< cpPlugins::Image >( "Output" );
13 }
14
15 // -------------------------------------------------------------------------
16 cpPluginsImageFilters::AndImageFilter::
17 ~AndImageFilter( )
18 {
19 }
20
21 // -------------------------------------------------------------------------
22 void cpPluginsImageFilters::AndImageFilter::
23 _GenerateData( )
24 {
25   auto image = this->GetInputData< itk::DataObject >( "Input0" );
26   cpPlugins_Image_Demangle_Pixel_AllInts      ( _GD0, image, 1 );
27   else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 2 );
28   else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 3 );
29   else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 4 );
30   else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 1 );
31   else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 2 );
32   else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 3 );
33   else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 4 );
34   else this->_Error( "No valid input image." );
35 }
36
37 // -------------------------------------------------------------------------
38 template< class _TImage >
39 void cpPluginsImageFilters::AndImageFilter::
40 _GD0( _TImage* image0 )
41 {
42   typedef itk::AndImageFilter< _TImage, _TImage > _TFilter;
43   if( image0 != NULL )
44   {
45     auto image1 = this->GetInputData< _TImage >( "Input1" );
46     if( image1 != NULL )
47     {
48       // Configure filter
49       auto filter = this->_CreateITK< _TFilter >( );
50       filter->SetInput( 0, image0 );
51       filter->SetInput( 1, image1 );
52       filter->Update( );
53
54       // Connect output
55       this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
56     }
57     else
58       this->_Error( "No valid second input image." );
59   }
60   else
61     this->_Error( "No valid first input image." );
62 }
63
64 // eof - $RCSfile$