00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-02-08 11:19:03 +0100 (Fr, 08 Feb 2008) $ 00006 Version: $Revision: 11989 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "mitkQBallImage.h" 00019 #include "mitkImageCast.h" 00020 #include "itkImage.h" 00021 #include "itkQBallToRgbImageFilter.h" 00022 00023 mitk::QBallImage::QBallImage() : Image() 00024 { 00025 m_RgbImage = 0; 00026 } 00027 00028 mitk::QBallImage::~QBallImage() 00029 { 00030 00031 } 00032 00033 vtkImageData* mitk::QBallImage::GetVtkImageData(int t, int n) 00034 { 00035 if(m_RgbImage.IsNull()) 00036 ConstructRgbImage(); 00037 return m_RgbImage->GetVtkImageData(t,n); 00038 } 00039 00040 void mitk::QBallImage::ConstructRgbImage() 00041 { 00042 typedef itk::Image<itk::Vector<float,QBALL_ODFSIZE>,3> ImageType; 00043 typedef itk::QBallToRgbImageFilter<ImageType> FilterType; 00044 FilterType::Pointer filter = FilterType::New(); 00045 00046 ImageType::Pointer itkvol = ImageType::New(); 00047 mitk::CastToItkImage<ImageType>(this, itkvol); 00048 filter->SetInput(itkvol); 00049 filter->Update(); 00050 00051 m_RgbImage = mitk::Image::New(); 00052 m_RgbImage->InitializeByItk( filter->GetOutput() ); 00053 m_RgbImage->SetVolume( filter->GetOutput()->GetBufferPointer() ); 00054 } 00055 00056 vtkImageData* mitk::QBallImage::GetNonRgbVtkImageData(int t, int n) 00057 { 00058 return Superclass::GetVtkImageData(t,n); 00059 } 00060 00061 // 00062 //void mitk::QBallImage::CopyConstruct(mitk::Image::Pointer img) 00063 //{ 00064 // m_LargestPossibleRegion = img->GetLargestPossibleRegion(); 00065 // m_RequestedRegion = img->GetRequestedRegion(); 00066 // m_Channels.push_back(img->GetChannelData(0).GetPointer()); 00067 // m_Volumes.push_back(img->GetVolumeData(0).GetPointer()); 00068 // m_Slices.push_back(img->GetSliceData(0).GetPointer()); 00069 // m_Dimension = img->GetDimension(); 00070 // m_Dimensions = img->GetDimensions(); 00071 // m_PixelType = img->GetPixelType(); 00072 //} 00073