]> Creatis software - bbtk.git/blob - packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.h
Feature #1774
[bbtk.git] / packages / itkvtk / src / bbitkvtkvtkImageData2itkImage.h
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5 #                        pour la SantÈ)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and
11 #  abiding by the rules of distribution of free software. You can  use,
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B
13 #  license as circulated by CEA, CNRS and INRIA at the following URL
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability.
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
26
27
28 /*=========================================================================
29                                                                                 
30   Program:   bbtk
31   Module:    $RCSfile: bbitkvtkvtkImageData2itkImage.h,v $
32   Language:  C++
33   Date:      $Date: 2012/11/16 08:50:49 $
34   Version:   $Revision: 1.9 $
35  
36 =========================================================================*/
37 /**
38  * \file 
39  * \brief class vtkImageData2itkImage : Converts a vtkImageData to a generic itkImage
40  */
41 /**
42  * \class vtkImageData2itkImage 
43  * \brief Converts a vtkImageData to a generic itkImage
44  */
45 #ifdef _USE_ITK_
46 #ifdef _USE_VTK_
47
48 #ifndef __bbitkvtkvtkImageData2itkImage_h__
49 #define __bbvitkvtktkImageData2itkImage_h__
50
51 #include "bbtkAtomicBlackBox.h"
52 #include "bbitkImage.h"
53 #include "vtkImageData.h"
54 #include "itkProcessObject.h"
55
56 namespace bbitkvtk
57 {
58
59   class /*BBTK_EXPORT*/ vtkImageData2itkImage : public bbtk::AtomicBlackBox  
60   {
61     
62     BBTK_BLACK_BOX_INTERFACE(vtkImageData2itkImage,
63                              bbtk::AtomicBlackBox);
64
65     BBTK_DECLARE_INPUT(In,vtkImageData*);
66     BBTK_DECLARE_OUTPUT(Out,bbitk::anyImagePointer);
67     BBTK_PROCESS(Convert);
68     void Convert();
69
70   private:
71     // Convert method : template on type of the itk image to be created
72     template<class T, unsigned int D> void Convert();
73     // stores the pointer on the template itk::VTKImageToImageFilter 
74     itk::ProcessObject::Pointer mConverter;
75   }; 
76   
77
78   //=================================================================
79   // AtomicBlackBox description
80   BBTK_BEGIN_DESCRIBE_BLACK_BOX(vtkImageData2itkImage,bbtk::AtomicBlackBox);
81   BBTK_NAME("vtkImageData2itkImage");
82   BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
83   BBTK_DESCRIPTION("Converts a vtkImageData* to a generic itkImage pointer");
84   BBTK_DEFAULT_ADAPTOR();
85   BBTK_INPUT(vtkImageData2itkImage,In,
86              "Input vtkImageData",vtkImageData*,"");
87   BBTK_OUTPUT(vtkImageData2itkImage,Out,
88               "Output itkImage",
89               bbitk::anyImagePointer,"");
90   BBTK_END_DESCRIBE_BLACK_BOX(vtkImageData2itkImage);
91   //=================================================================
92
93
94 }
95 //namespace bbitkvtk
96 #endif
97 // _USE_VTK_
98 #endif
99 // _USE_ITK_
100
101 #endif