#pragma once #include class dtkImage; #include #include // ///////////////////////////////////////////////////////////////// // // ///////////////////////////////////////////////////////////////// template < typename Pixel, int dim > class dtkPixelClassDataExtractor { public: static typename Pixel::PixelType* getData(typename itk::Image::itkPixelType,dim>::Pointer image) { return (typename Pixel::PixelType*)(image->GetBufferPointer()->GetDataPointer()); } }; // ///////////////////////////////////////////////////////////////// // // ///////////////////////////////////////////////////////////////// template < typename Pixel, int dim > class dtkPixelRawDataExtractor { public: static typename Pixel::PixelType* getData(typename itk::Image::itkPixelType, dim>::Pointer image) { return (typename Pixel::PixelType*)(image->GetBufferPointer()); } }; // ///////////////////////////////////////////////////////////////// // // ///////////////////////////////////////////////////////////////// template < typename Pixel, int dim > class dtkItkImageConverterHandler { typedef itk::Image::itkPixelType, dim> ItkImageType; public: static void convertToNative (dtkImage* source, typename ItkImageType::Pointer target); static void convertFromNative(typename ItkImageType::Pointer source, dtkImage* target); }; // ///////////////////////////////////////////////////////////////// // // ///////////////////////////////////////////////////////////////// template < typename Pixel, int dim > class dtkItkImageConverter { public: typedef itk::Image::itkPixelType, dim> ItkImageType; static void convertToNative (dtkImage *source, typename ItkImageType::Pointer target); static void convertFromNative(typename ItkImageType::Pointer source, dtkImage *target); }; // ///////////////////////////////////////////////////////////////// typedef itk::Image >::itkPixelType, 3> ItkImageUChar3; typedef itk::Image >::itkPixelType, 3> ItkImageChar3; typedef itk::Image >::itkPixelType, 3> ItkImageUShort3; typedef itk::Image >::itkPixelType, 3> ItkImageShort3; typedef itk::Image >::itkPixelType, 3> ItkImageUInt3; typedef itk::Image >::itkPixelType, 3> ItkImageInt3; typedef itk::Image >::itkPixelType, 3> ItkImageULong3; typedef itk::Image >::itkPixelType, 3> ItkImageLong3; typedef itk::Image >::itkPixelType, 3> ItkImageFloat3; typedef itk::Image >::itkPixelType, 3> ItkImageDouble3; // ///////////////////////////////////////////////////////////////// #include "dtkItkImageConverter.tpp"