X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpInstances%2FDataObjects%2FImage.cxx;fp=lib%2FcpInstances%2FDataObjects%2FImage.cxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=09cf834c0de8d955a7abce1b467205cf082eb01d;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpInstances/DataObjects/Image.cxx b/lib/cpInstances/DataObjects/Image.cxx deleted file mode 100644 index 09cf834..0000000 --- a/lib/cpInstances/DataObjects/Image.cxx +++ /dev/null @@ -1,196 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include - -// ------------------------------------------------------------------------- -void cpInstances::DataObjects::Image:: -SetITK( itk::LightObject* o ) -{ - this->Superclass::SetITK( o ); - this->m_VTK = NULL; - this->m_ITKvVTK = NULL; - this->Modified( ); -} - -// ------------------------------------------------------------------------- -void cpInstances::DataObjects::Image:: -SetVTK( vtkObjectBase* o ) -{ - this->Superclass::SetVTK( o ); - this->m_ITK = NULL; - this->m_ITKvVTK = NULL; - this->Modified( ); - - /* TODO - vtkImageData* img = dynamic_cast< vtkImageData* >( o ); - this->Superclass::SetVTK( img ); - if( img == NULL ) - { - this->m_ITK = NULL; - this->m_ITKvVTK = NULL; - this->Modified( ); - return; - - } // fi - - bool success = false; - auto stype = img->GetScalarType( ); - #ifdef cpPlugins_CONFIG_INTEGER_TYPES_char - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< char >( img ); - if( stype == VTK_UNSIGNED_CHAR ) success = this->_VTK_2_ITK_0< unsigned char >( img ); - #endif // cpPlugins_CONFIG_INTEGER_TYPES_char - #ifdef cpPlugins_CONFIG_INTEGER_TYPES_short - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< short >( img ); - if( stype == VTK_UNSIGNED_CHAR ) success = this->_VTK_2_ITK_0< unsigned short >( img ); - #endif // cpPlugins_CONFIG_INTEGER_TYPES_short - #ifdef cpPlugins_CONFIG_INTEGER_TYPES_int - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< int >( img ); - if( stype == VTK_UNSIGNED_CHAR ) success = this->_VTK_2_ITK_0< unsigned int >( img ); - #endif // cpPlugins_CONFIG_INTEGER_TYPES_int - #ifdef cpPlugins_CONFIG_INTEGER_TYPES_long - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< long >( img ); - if( stype == VTK_UNSIGNED_CHAR ) success = this->_VTK_2_ITK_0< unsigned long >( img ); - #endif // cpPlugins_CONFIG_INTEGER_TYPES_long - #ifdef cpPlugins_CONFIG_REAL_TYPES_float - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< float >( img ); - #endif // cpPlugins_CONFIG_REAL_TYPES_float - #ifdef cpPlugins_CONFIG_REAL_TYPES_double - if( stype == VTK_CHAR ) success = this->_VTK_2_ITK_0< double >( img ); - #endif // cpPlugins_CONFIG_REAL_TYPES_double - */ - /* TODO - #define cpPlugins_CONFIG_COLOR_PIXELS_RGBPixel - #define cpPlugins_CONFIG_COLOR_PIXELS_RGBAPixel - #define cpPlugins_CONFIG_VECTORS_CovariantVector - #define cpPlugins_CONFIG_VECTORS_Point - #define cpPlugins_CONFIG_VECTORS_SymmetricSecondRankTensor - #define cpPlugins_CONFIG_VECTORS_Vector - #define cpPlugins_CONFIG_DIFFUSIONTENSORS_DiffusionTensor3D - #define cpPlugins_CONFIG_MATRICES_Matrix - */ - /* TODO - if( !success ) - { - this->m_ITK = NULL; - this->m_ITKvVTK = NULL; - - } // fi - this->Modified( ); - */ -} - -// ------------------------------------------------------------------------- -cpInstances::DataObjects::Image:: -Image( ) - : Superclass( ) -{ -} - -// ------------------------------------------------------------------------- -cpInstances::DataObjects::Image:: -~Image( ) -{ -} - -// ------------------------------------------------------------------------- -void cpInstances::DataObjects::Image:: -_UpdateITK( ) const -{ - // TODO: std::cout << "Create ITK representation." << std::endl; -} - -// ------------------------------------------------------------------------- -void cpInstances::DataObjects::Image:: -_UpdateVTK( ) const -{ - auto i = const_cast< itk::LightObject* >( this->m_ITK.GetPointer( ) ); - auto v = const_cast< vtkObjectBase* >( this->m_VTK.GetPointer( ) ); - if( i != NULL && v == NULL ) - { - cpPlugins_Demangle_Image_VisualDims_1( i, _ITK_2_VTK_0 ) - cpPlugins_Demangle_Image_DiffTensors3D_1( i, _ITK_2_VTK_1 ); - - } // fi -} - -// ------------------------------------------------------------------------- -template< class _TImage > -void cpInstances::DataObjects::Image:: -_ITK_2_VTK_0( _TImage* image ) const -{ - static const unsigned int d = _TImage::ImageDimension; - cpPlugins_Demangle_Image_ScalarPixels_1( image, _ITK_2_VTK_1, d ) - cpPlugins_Demangle_Image_ColorPixels_1( image, _ITK_2_VTK_1, d ) - cpPlugins_Demangle_Image_VectorPixels_1( image, _ITK_2_VTK_1, d ); -} - -// ------------------------------------------------------------------------- -template< class _TImage > -void cpInstances::DataObjects::Image:: -_ITK_2_VTK_1( _TImage* image ) const -{ - typedef itk::ImageToVTKImageFilter< _TImage > _TFilter; - - Self* self = const_cast< Self* >( this ); - _TFilter* f = dynamic_cast< _TFilter* >( self->m_ITKvVTK.GetPointer( ) ); - if( f == NULL ) - { - typename _TFilter::Pointer nf = _TFilter::New( ); - self->m_ITKvVTK = nf; - f = nf.GetPointer( ); - - } // fi - f->SetInput( image ); - f->Update( ); - - // Keep object track - self->m_ITK = image; - self->m_VTK = f->GetOutput( ); -} - -// ------------------------------------------------------------------------- -template< class _TPixel > -bool cpInstances::DataObjects::Image:: -_VTK_2_ITK_0( vtkImageData* image ) -{ - bool success = false; - unsigned int dim = image->GetDataDimension( ); -#ifdef cpPlugins_CONFIG_VISUAL_DIMENSIONS_2 - if( dim == 2 ) success = this->_VTK_2_ITK_1< _TPixel, 2 >( image ); -#endif // cpPlugins_CONFIG_VISUAL_DIMENSIONS_2 -#ifdef cpPlugins_CONFIG_VISUAL_DIMENSIONS_3 - if( dim == 3 ) success = this->_VTK_2_ITK_1< _TPixel, 3 >( image ); -#endif // cpPlugins_CONFIG_VISUAL_DIMENSIONS_2 - return( success ); -} - -// ------------------------------------------------------------------------- -template< class _TPixel, unsigned int _VDim > -bool cpInstances::DataObjects::Image:: -_VTK_2_ITK_1( vtkImageData* image ) -{ - typedef itk::Image< _TPixel, _VDim > _TImage; - typedef itk::VTKImageToImageFilter< _TImage > _TFilter; - _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) ); - if( f == NULL ) - { - typename _TFilter::Pointer nf = _TFilter::New( ); - this->m_ITKvVTK = nf; - f = nf.GetPointer( ); - - } // fi - f->SetInput( image ); - f->Update( ); - - // Keep object track - this->m_VTK = image; - this->m_ITK = f->GetOutput( ); - return( true ); -} - -// eof - $RCSfile$