]> Creatis software - cpPlugins.git/blobdiff - plugins/ImageGenericFilters/RegionOfInterestImageFilter.cxx
...
[cpPlugins.git] / plugins / ImageGenericFilters / RegionOfInterestImageFilter.cxx
index b6bc5465f2f37f49c137c020c2f65731009b1abe..e73ac5928a836cd709074b4ab7407ba7a3a98294 100644 (file)
@@ -1,7 +1,10 @@
 #include <ImageGenericFilters/RegionOfInterestImageFilter.h>
 #include <cpPlugins/DataObjects/Image.h>
 #include <cpPlugins/DataObjects/BoundingBox.h>
+#include <cpPlugins/DataObjects/Image_Demanglers.h>
 
+#include <itkRGBPixel.h>
+#include <itkRGBAPixel.h>
 #include <itkRegionOfInterestImageFilter.h>
 
 // -------------------------------------------------------------------------
@@ -9,9 +12,11 @@ cpPluginsImageGenericFilters::RegionOfInterestImageFilter::
 RegionOfInterestImageFilter( )
   : Superclass( )
 {
-  this->_ConfigureInput< cpPlugins::DataObjects::Image >( "Input", true, false );
-  this->_ConfigureInput< cpPlugins::DataObjects::BoundingBox >( "BoundingBox", true, false );
-  this->_ConfigureOutput< cpPlugins::DataObjects::Image >( "Output" );
+  typedef cpPlugins::DataObjects::Image _TImage;
+  typedef cpPlugins::DataObjects::BoundingBox _TBBox;
+  this->_ConfigureInput< _TImage >( "Input", true, false );
+  this->_ConfigureInput< _TBBox >( "BoundingBox", true, false );
+  this->_ConfigureOutput< _TImage >( "Output" );
 }
 
 // -------------------------------------------------------------------------
@@ -25,8 +30,9 @@ void cpPluginsImageGenericFilters::RegionOfInterestImageFilter::
 _GenerateData( )
 {
   auto o = this->GetInputData( "Input" );
-  cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 );
-  else this->_Error( "Invalid input image." );
+  cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 )
+    cpPlugins_Demangle_Image_ColorPixels_AllDims_1( o, _GD0 )
+    this->_Error( "Invalid input image." );
 }
 
 // -------------------------------------------------------------------------
@@ -34,13 +40,14 @@ template< class _TImage >
 void cpPluginsImageGenericFilters::RegionOfInterestImageFilter::
 _GD0( _TImage* input )
 {
+  typedef cpPlugins::DataObjects::BoundingBox _TBBox;
   typedef itk::RegionOfInterestImageFilter< _TImage, _TImage > _TFilter;
   typedef typename _TImage::IndexType  _TIndex;
   typedef typename _TImage::PointType  _TPoint;
   typedef typename _TImage::RegionType _TRegion;
   typedef typename _TImage::SizeType   _TSize;
 
-  auto bb = this->GetInput< cpPlugins::DataObjects::BoundingBox >( "BoundingBox" );
+  auto bb = this->GetInput< _TBBox >( "BoundingBox" );
 
   _TIndex i0, i1;
   input->TransformPhysicalPointToIndex( bb->GetMinimum< _TPoint >( ), i0 );