1 #ifndef __ITKToVTKImageImport_TXX
2 #define __ITKToVTKImageImport_TXX
8 ** Default constructor, allocates the vtkImageExport and itkImageImport
9 ** Connects the pipelines and set them ready to be use
11 template<typename TypeImage>
12 ITKToVTKImageImport<TypeImage>::ITKToVTKImageImport(){
14 vtkimageexport = vtkImageExport::New();
15 imageimportpointer = ImageImportType::New();
17 imageimportpointer->SetUpdateInformationCallback(vtkimageexport->GetUpdateInformationCallback());
18 imageimportpointer->SetPipelineModifiedCallback(vtkimageexport->GetPipelineModifiedCallback());
19 imageimportpointer->SetWholeExtentCallback(vtkimageexport->GetWholeExtentCallback());
20 imageimportpointer->SetSpacingCallback(vtkimageexport->GetSpacingCallback());
21 imageimportpointer->SetOriginCallback(vtkimageexport->GetOriginCallback());
22 imageimportpointer->SetScalarTypeCallback(vtkimageexport->GetScalarTypeCallback());
23 imageimportpointer->SetNumberOfComponentsCallback(vtkimageexport->GetNumberOfComponentsCallback());
24 imageimportpointer->SetPropagateUpdateExtentCallback(vtkimageexport->GetPropagateUpdateExtentCallback());
25 imageimportpointer->SetUpdateDataCallback(vtkimageexport->GetUpdateDataCallback());
26 imageimportpointer->SetDataExtentCallback(vtkimageexport->GetDataExtentCallback());
27 imageimportpointer->SetBufferPointerCallback(vtkimageexport->GetBufferPointerCallback());
28 imageimportpointer->SetCallbackUserData(vtkimageexport->GetCallbackUserData());
31 imageexportpointer = ImageExportType::New();
32 vtkimageimport = vtkImageImport::New();
34 vtkimageimport->SetUpdateInformationCallback(imageexportpointer->GetUpdateInformationCallback());
35 vtkimageimport->SetPipelineModifiedCallback(imageexportpointer->GetPipelineModifiedCallback());
36 vtkimageimport->SetWholeExtentCallback(imageexportpointer->GetWholeExtentCallback());
37 vtkimageimport->SetSpacingCallback(imageexportpointer->GetSpacingCallback());
38 vtkimageimport->SetOriginCallback(imageexportpointer->GetOriginCallback());
39 vtkimageimport->SetScalarTypeCallback(imageexportpointer->GetScalarTypeCallback());
40 vtkimageimport->SetNumberOfComponentsCallback(imageexportpointer->GetNumberOfComponentsCallback());
41 vtkimageimport->SetPropagateUpdateExtentCallback(imageexportpointer->GetPropagateUpdateExtentCallback());
42 vtkimageimport->SetUpdateDataCallback(imageexportpointer->GetUpdateDataCallback());
43 vtkimageimport->SetDataExtentCallback(imageexportpointer->GetDataExtentCallback());
44 vtkimageimport->SetBufferPointerCallback(imageexportpointer->GetBufferPointerCallback());
45 vtkimageimport->SetCallbackUserData(imageexportpointer->GetCallbackUserData());
50 template<typename TypeImage >
51 ITKToVTKImageImport<TypeImage>::~ITKToVTKImageImport(){
52 /*std::cout<<"delete ~ITKToVTKImageImport(){"<<std::endl;*/
53 vtkimageimport->Delete();
54 vtkimageexport->Delete();
57 * set the vtkImage data to connect to itk pipeline
59 template<typename TypeImage>
60 void ITKToVTKImageImport<TypeImage>::SetVTKImage(vtkImageData* img) {
61 vtkimageexport->SetInput( img );
62 vtkimageexport->Update();
63 imageimportpointer->Update();
69 template<typename TypeImage>
70 typename ITKToVTKImageImport<TypeImage>::InputImagePointerType ITKToVTKImageImport<TypeImage>::GetOutputITKImage() {
71 if(vtkimageexport->GetInput()==0){
72 throw "Image not set to get the ItkImage, set the VtkImage before.\0";
74 return imageimportpointer->GetOutput();
78 * Get the vtkImageData from the itk image
80 template<typename TypeImage >
81 vtkImageData* ITKToVTKImageImport<TypeImage >::GetOutputVTKImage() {
82 return vtkimageimport->GetOutput();
85 * set the vtkImage data to connect to itk pipeline
87 template<typename TypeImage>
88 void ITKToVTKImageImport<TypeImage >::SetITKImage(InputImagePointerType itkimage){
89 //std::cout<<"image pointer setITKImage"<<img<<std::endl;
91 m_ITKImage = itkimage;
92 imageexportpointer->SetInput(itkimage);
93 imageexportpointer->Update();
94 vtkimageimport->Update();