+++ /dev/null
-#include "ExtractSliceImageFilter.h"
-#include <cpPlugins/Interface/Image.h>
-
-#include <itkExtractImageFilter.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::BasicFilters::ExtractSliceImageFilter::
-ExtractSliceImageFilter( )
- : Superclass( )
-{
- this->_AddInput( "Input" );
- this->_AddOutput< cpPlugins::Interface::Image >( "Output" );
-
- this->m_Parameters->ConfigureAsUint( "Axis" );
- this->m_Parameters->ConfigureAsInt( "Slice" );
-
- this->m_Parameters->SetUint( "Axis", 0 );
- this->m_Parameters->SetInt( "Slice", 0 );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::BasicFilters::ExtractSliceImageFilter::
-~ExtractSliceImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::BasicFilters::ExtractSliceImageFilter::
-_GenerateData( )
-{
- auto image = this->GetInputData( "Input" );
- itk::DataObject* itk_image = NULL;
- std::string r = "";
-/*
- cpPlugins_Image_Demangle_AllTypes( 3, image, itk_image, r, _GD0 );
- else cpPlugins_VectorImage_Demangle_AllTypes( 3, image, itk_image, r, _GD0 );
- else*/ r = "ExtractSliceImageFilter: Input image type not supported.";
- return( r );
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-std::string cpPlugins::BasicFilters::ExtractSliceImageFilter::
-_GD0( itk::DataObject* image )
-{
- return( this->_RealGD< I, I >( image ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-inline std::string cpPlugins::BasicFilters::ExtractSliceImageFilter::
-_RealGD( itk::DataObject* image )
-{
- typedef itk::ExtractImageFilter< I, O > _F;
- typedef typename O::PixelType _OP;
-
- // Get parameters
- int axis = this->m_Parameters->GetUint( "Axis" );
- int slice = this->m_Parameters->GetInt( "Slice" );
-
- // Compute region
- I* img = dynamic_cast< I* >( image );
- typename I::RegionType region = img->GetRequestedRegion( );
- typename I::SizeType size = region.GetSize( );
- typename I::IndexType index = region.GetIndex( );
- size[ axis ] = 1;
- index[ axis ] = slice;
- region.SetSize( size );
- region.SetIndex( index );
-
- // Configure filter
- _F* filter = this->_CreateITK< _F >( );
- filter->SetInput( img );
- filter->SetExtractionRegion( region );
- filter->SetDirectionCollapseToIdentity( );
- filter->Update( );
-
- // Connect output
- auto out = this->GetOutputData( "Output" );
- out->SetITK( filter->GetOutput( ) );
- return( "" );
-}
-
-// eof - $RCSfile$