X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FITKRasterFilters%2FRasterImageFilter.cxx;fp=plugins%2FITKRasterFilters%2FRasterImageFilter.cxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=097566c9664cfe660ee45eec87b53796599d4a6b;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/plugins/ITKRasterFilters/RasterImageFilter.cxx b/plugins/ITKRasterFilters/RasterImageFilter.cxx deleted file mode 100644 index 097566c..0000000 --- a/plugins/ITKRasterFilters/RasterImageFilter.cxx +++ /dev/null @@ -1,160 +0,0 @@ -#include -#include -#include - -#include -#include -#include - -// ------------------------------------------------------------------------- -cpPluginsITKRasterFilters::RasterImageFilter:: -RasterImageFilter( ) - : Superclass( ) -{ - typedef cpInstances::DataObjects::Mesh _TMesh; - typedef cpInstances::DataObjects::Image _TImage; - - this->_ConfigureInput< _TMesh >( "Input", true, false ); - this->_ConfigureInput< _TImage >( "TemplateImage", false, false ); - this->_ConfigureOutput< _TImage >( "Output" ); - - this->m_Parameters.ConfigureAsReal( "InsideValue", 1 ); - this->m_Parameters.ConfigureAsReal( "OutsideValue", 0 ); - this->m_Parameters.ConfigureAsScalarTypesChoices( "OutputPixelType" ); -} - -// ------------------------------------------------------------------------- -cpPluginsITKRasterFilters::RasterImageFilter:: -~RasterImageFilter( ) -{ -} - -// ------------------------------------------------------------------------- -void cpPluginsITKRasterFilters::RasterImageFilter:: -_GenerateData( ) -{ - auto mesh = this->GetInputData< vtkPolyData >( "Input" ); - double bounds[ 6 ]; - mesh->GetBounds( bounds ); - double zdiff = std::fabs( bounds[ 5 ] - bounds[ 4 ] ); - if( zdiff > 1e-5 ) - { - cpPlugins_Demangle_Mesh_Meshes_1( - this->GetInputData( "Input" ), _GD0_3D, 3 - ) - this->_Error( "Invalid input image dimension." ); - } - else - this->_GD0_2D( mesh ); -} - -// ------------------------------------------------------------------------- -template< class _TMesh > -void cpPluginsITKRasterFilters::RasterImageFilter:: -_GD0_2D( _TMesh* mesh ) -{ - std::string p_type = - this->m_Parameters.GetSelectedChoice( "OutputPixelType" ); - if( p_type == "char" ) this->_GD1_2D< _TMesh, char >( mesh ); - else if( p_type == "short" ) this->_GD1_2D< _TMesh, short >( mesh ); - else if( p_type == "int" ) this->_GD1_2D< _TMesh, int >( mesh ); - else if( p_type == "long" ) this->_GD1_2D< _TMesh, long >( mesh ); - else if( p_type == "uchar" ) this->_GD1_2D< _TMesh, unsigned char >( mesh ); - else if( p_type == "ushort" ) this->_GD1_2D< _TMesh, unsigned short >( mesh ); - else if( p_type == "uint" ) this->_GD1_2D< _TMesh, unsigned int >( mesh ); - else if( p_type == "ulong" ) this->_GD1_2D< _TMesh, unsigned long >( mesh ); - else if( p_type == "float" ) this->_GD1_2D< _TMesh, float >( mesh ); - else if( p_type == "double" ) this->_GD1_2D< _TMesh, double >( mesh ); -} - -// ------------------------------------------------------------------------- -template< class _TMesh, class _TPixelType > -void cpPluginsITKRasterFilters::RasterImageFilter:: -_GD1_2D( _TMesh* mesh ) -{ - typedef itk::Image< _TPixelType, 2 > _TImage; - typedef typename _TImage::Superclass _TBaseImage; - typedef cpExtensions::Algorithms::RasterContourFilter< _TImage > _TFilter; - - // Configure filter - _TFilter* filter = this->_CreateITK< _TFilter >( ); - filter->SetInsideValue( this->m_Parameters.GetReal( "InsideValue" ) ); - filter->SetOutsideValue( this->m_Parameters.GetReal( "OutsideValue" ) ); - filter->SetTemplate( this->GetInputData< _TBaseImage >( "TemplateImage" ) ); - filter->ClearPoints( ); - for( unsigned long i = 0; i < mesh->GetNumberOfPoints( ); ++i ) - { - double pnt[ 3 ]; - mesh->GetPoint( i, pnt ); - filter->AddPoint( pnt ); - - } // rof - - // Execute and connect output - filter->Update( ); - this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); -} - -// ------------------------------------------------------------------------- -template< class _TMesh > -void cpPluginsITKRasterFilters::RasterImageFilter:: -_GD0_3D( _TMesh* mesh ) -{ - std::string p_type = - this->m_Parameters.GetSelectedChoice( "OutputPixelType" ); - if( p_type == "char" ) this->_GD1_3D< _TMesh, char >( mesh ); - else if( p_type == "short" ) this->_GD1_3D< _TMesh, short >( mesh ); - else if( p_type == "int" ) this->_GD1_3D< _TMesh, int >( mesh ); - else if( p_type == "long" ) this->_GD1_3D< _TMesh, long >( mesh ); - else if( p_type == "uchar" ) this->_GD1_3D< _TMesh, unsigned char >( mesh ); - else if( p_type == "ushort" ) this->_GD1_3D< _TMesh, unsigned short >( mesh ); - else if( p_type == "uint" ) this->_GD1_3D< _TMesh, unsigned int >( mesh ); - else if( p_type == "ulong" ) this->_GD1_3D< _TMesh, unsigned long >( mesh ); - else if( p_type == "float" ) this->_GD1_3D< _TMesh, float >( mesh ); - else if( p_type == "double" ) this->_GD1_3D< _TMesh, double >( mesh ); -} - -// ------------------------------------------------------------------------- -template< class _TMesh, class _TPixelType > -void cpPluginsITKRasterFilters::RasterImageFilter:: -_GD1_3D( _TMesh* mesh ) -{ - typedef itk::Image< _TPixelType, 3 > _TImage; - typedef typename _TImage::Superclass _TBaseImage; - typedef itk::TriangleMeshToBinaryImageFilter< _TMesh, _TImage > _TFilter; - - // Create filter - _TFilter* filter = this->_CreateITK< _TFilter >( ); - - // Compute bounding box - typename _TImage::DirectionType direction; - typename _TImage::PointType origin; - typename _TImage::SizeType size; - typename _TImage::SpacingType spac; - auto t_image = this->GetInputData< _TBaseImage >( "TemplateImage" ); - if( t_image == NULL ) - { - } - else - { - direction = t_image->GetDirection( ); - origin = t_image->GetOrigin( ); - size = t_image->GetLargestPossibleRegion( ).GetSize( ); - spac = t_image->GetSpacing( ); - - } // fi - - // Configure filter - filter->SetDirection( direction ); - filter->SetOrigin( origin ); - filter->SetSize( size ); - filter->SetSpacing( spac ); - filter->SetInsideValue( this->m_Parameters.GetReal( "InsideValue" ) ); - filter->SetOutsideValue( this->m_Parameters.GetReal( "OutsideValue" ) ); - - // Execute and connect output - filter->Update( ); - this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); -} - -// eof - $RCSfile$