#include #include #include #include #include #include // ------------------------------------------------------------------------- cpPluginsITKSliceFilters::CPRImageFilter:: CPRImageFilter( ) : Superclass( ) { typedef cpInstances::DataObjects::Image _TImage; typedef cpInstances::DataObjects::Simple3DCurve _TCurve; this->_ConfigureInput< _TImage >( "Image", true, false ); this->_ConfigureInput< _TCurve >( "Curve", true, false ); this->_ConfigureOutput< _TImage >( "Output" ); this->m_Parameters.ConfigureAsReal( "SliceRadius", 1 ); } // ------------------------------------------------------------------------- cpPluginsITKSliceFilters::CPRImageFilter:: ~CPRImageFilter( ) { } // ------------------------------------------------------------------------- void cpPluginsITKSliceFilters::CPRImageFilter:: _GenerateData( ) { auto o = this->GetInputData( "Image" ); cpPlugins_Demangle_Image_ScalarPixels_1( o, _GD0, 3 ) this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsITKSliceFilters::CPRImageFilter:: _GD0( _TImage* image ) { auto o = this->GetInputData( "Curve" ); cpPlugins_Demangle_Simple3DCurve_All_2( o, _GD1, image ) this->_Error( "Invalid input curve." ); } // ------------------------------------------------------------------------- template< class _TCurve, class _TImage > void cpPluginsITKSliceFilters::CPRImageFilter:: _GD1( _TCurve* curve, _TImage* image ) { typedef cpExtensions::Algorithms::CPRImageFilter< _TImage, _TCurve > _TFilter; auto filter = this->_CreateITK< _TFilter >( ); filter->SetInput( image ); filter->SetCurve( curve ); filter->SetSliceRadius( this->m_Parameters.GetReal( "SliceRadius" ) ); filter->Update( ); this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); } // eof - $RCSfile$