]> Creatis software - bbtk.git/blob - packages/itkvtk/src/bbitkvtkitkImage2vtkImageData.cxx
*** empty log message ***
[bbtk.git] / packages / itkvtk / src / bbitkvtkitkImage2vtkImageData.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   bbtk
4   Module:    $RCSfile: bbitkvtkitkImage2vtkImageData.cxx,v $
5   Language:  C++
6   Date:      $Date: 2008/05/09 10:39:46 $
7   Version:   $Revision: 1.3 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18 /**
19  *  \file 
20  *  \brief 
21  */
22 #ifdef _USE_ITK_
23 #ifdef _USE_VTK_
24
25 #include "bbitkvtkitkImage2vtkImageData.h"
26 #include "bbitkvtkPackage.h"
27 // VtkToItkConnection 
28 //#include "itkVTKImageToImageFilter.h"
29 // ItkToVtkConnection
30 #include "itkImageToVTKImageFilter.h"
31
32
33 namespace bbitkvtk 
34 {
35   BBTK_BLACK_BOX_IMPLEMENTATION(itkImage2vtkImageData,bbtk::AtomicBlackBox);
36
37   BBTK_ADD_BLACK_BOX_TO_PACKAGE(itkvtk,itkImage2vtkImageData);
38
39
40
41
42   void itkImage2vtkImageData::Convert()
43   {
44     bbtk::TypeInfo t = bbGetInputIn().type();
45     BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t,Convert);
46   }
47   
48
49
50    template<class T>
51    void itkImage2vtkImageData::Convert()
52   {
53     bbtkDebugMessageInc("Core",9,"itkImage2vtkImageData<"
54                         <<bbtk::TypeName<T>()
55                         <<">::Convert()"<<std::endl);
56
57     typedef T itkImageType;
58     //   typedef itk::VTKImageToImageFilter< itkImageType > VtkToItkConnection;
59     typedef itk::ImageToVTKImageFilter< itkImageType > ItkToVtkConnection;
60
61
62     try 
63       {
64         typename ItkToVtkConnection::Pointer conv = ItkToVtkConnection::New();
65         conv->SetInput( this->bbGetInputIn().get<itkImageType*>() );
66         conv->Update();
67         if (bbGetOutputOut()) bbGetOutputOut()->UnRegister(NULL);
68         bbSetOutputOut(conv->GetOutput());
69         //      bbGetOutputOut()->DebugOn();
70         bbGetOutputOut()->Register(NULL);
71         bbGetOutputOut()->SetSource(NULL);
72       }
73     catch( itk::ExceptionObject & e) 
74       {
75         bbtkError("itkImage2vtkImageData<"
76                   <<bbtk::TypeName<T>()
77                   <<">::Convert() : "<<e);
78       } 
79     bbtkDebugDecTab("Core",9);
80   }
81
82   void itkImage2vtkImageData::bbUserConstructor()
83   {
84     bbSetOutputOut(NULL);
85   }
86   void itkImage2vtkImageData::bbUserCopyConstructor()
87   {
88     bbSetOutputOut(NULL);
89   }
90   void itkImage2vtkImageData::bbUserDestructor()
91   {
92     if (bbGetOutputOut()) 
93       {
94         bbGetOutputOut()->UnRegister(NULL);
95       }
96   }
97
98
99 }
100 // eo namespace bbitkvtk
101
102 #endif
103 // _USE_VTK_
104 #endif
105 // _USE_ITK_