]> Creatis software - bbtk.git/blob - packages/itkvtk/src/bbitkvtkvtkImageDataVector2itkImageVector.h
868f22d358e3ddc2772ea99f5c2b4c94632afdf5
[bbtk.git] / packages / itkvtk / src / bbitkvtkvtkImageDataVector2itkImageVector.h
1 /*=========================================================================
2                                                                                 
3   Program:   bbtk
4   Module:    $RCSfile: bbitkvtkvtkImageDataVector2itkImageVector.h,v $
5   Language:  C++
6   Date:      $Date: 2011/06/16 12:28:57 $
7   Version:   $Revision: 1.1 $
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 class vtkImageDataVector2itkImageVector : Converts a vtkImageData to a generic itkImage
21  */
22 /**
23  * \class vtkImageDataVector2itkImageVector 
24  * \brief Converts a vtkImageData to a generic itkImage
25  */
26 #ifdef _USE_ITK_
27 #ifdef _USE_VTK_
28
29 #ifndef __bbitkvtkvtkImageDataVector2itkImageVector_h__
30 #define __bbvitkvtktkImageData2itkImage_h__
31
32 #include "bbtkAtomicBlackBox.h"
33 #include "bbitkImage.h"
34 #include "vtkImageData.h"
35 #include "itkProcessObject.h"
36
37 namespace bbitkvtk
38 {
39
40   class /*BBTK_EXPORT*/ vtkImageDataVector2itkImageVector : public bbtk::AtomicBlackBox  
41   {
42     
43     BBTK_BLACK_BOX_INTERFACE(vtkImageDataVector2itkImageVector,
44                              bbtk::AtomicBlackBox);
45
46     BBTK_DECLARE_INPUT(In,std::vector<vtkImageData*>);
47     BBTK_DECLARE_OUTPUT(Out,std::vector<bbitk::anyImagePointer>);
48     BBTK_PROCESS(Convert);
49     void Convert();
50
51   private:
52     // Convert method : template on type of the itk image to be created
53     template<class T, unsigned int D> void Convert();
54     // stores the pointer on the template itk::VTKImageToImageFilter 
55     itk::ProcessObject::Pointer mConverter;
56     std::vector<bbitk::anyImagePointer> m_Output_Vector;
57   }; 
58   
59
60   //=================================================================
61   // AtomicBlackBox description
62   BBTK_BEGIN_DESCRIBE_BLACK_BOX(vtkImageDataVector2itkImageVector,bbtk::AtomicBlackBox);
63   BBTK_NAME("vtkImageDataVector2itkImageVector");
64   BBTK_AUTHOR("jpr@creatis.insa-lyon.fr");
65   BBTK_DESCRIPTION("Converts a std::vector of vtkImageData* to a std::vector of generic itkImage pointer");
66   BBTK_DEFAULT_ADAPTOR();
67   BBTK_INPUT(vtkImageDataVector2itkImageVector,In,
68              "Input std::vector of vtkImageData*",std::vector<vtkImageData*>,"");
69   BBTK_OUTPUT(vtkImageDataVector2itkImageVector,Out,
70               "Output std::vector of generic itkImage pointer",
71               std::vector<bbitk::anyImagePointer>,"");
72   BBTK_END_DESCRIBE_BLACK_BOX(vtkImageDataVector2itkImageVector);
73   //=================================================================
74
75
76 }
77 //namespace bbitkvtk
78 #endif
79 // _USE_VTK_
80 #endif
81 // _USE_ITK_
82
83 #endif