3 #ifndef __bbitkAnyImageToTypedImage_h_INCLUDED__
4 #define __bbitkAnyImageToTypedImage_h_INCLUDED__
6 #include "bbtkAtomicBlackBox.h"
7 #include "bbitkImage.h"
12 //=================================================================
13 // BlackBox declaration
14 template <class itkImageTypePointer>
15 class AnyImageToTypedImage : public bbtk::AtomicBlackBox
17 BBTK_TEMPLATE_BLACK_BOX_INTERFACE(AnyImageToTypedImage,
20 BBTK_DECLARE_INPUT(In,anyImagePointer);
21 BBTK_DECLARE_OUTPUT(Out,itkImageTypePointer);
25 //=================================================================
27 //=================================================================
28 // BlackBox description
29 BBTK_BEGIN_DESCRIBE_TEMPLATE_BLACK_BOX(AnyImageToTypedImage,
30 bbtk::AtomicBlackBox);
31 BBTK_NAME(bbtk::HumanTypeName<anyImagePointer>() + "To"
32 +bbtk::HumanTypeName<T>());
33 BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
34 BBTK_DESCRIPTION("Converts a generic itk image pointer ("+
35 bbtk::HumanTypeName<anyImagePointer>()+
36 ") into a typed itk image pointer ("+
37 bbtk::HumanTypeName<T>()+")");
38 BBTK_DEFAULT_ADAPTOR();
39 BBTK_TEMPLATE_INPUT(AnyImageToTypedImage,In,
40 "Input generic image pointer",anyImagePointer);
41 BBTK_TEMPLATE_OUTPUT(AnyImageToTypedImage,Out,
42 "Output typed image pointer",T);
43 BBTK_END_DESCRIBE_TEMPLATE_BLACK_BOX(AnyImageToTypedImage);
44 //=================================================================
46 //=================================================================
47 template <class itkImageTypePointer>
48 void AnyImageToTypedImage<itkImageTypePointer>::DoIt()
50 if ( bbGetInputIn().type() == typeid(itkImageTypePointer) )
52 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypePointer >() );
56 bbtkError(this->bbGetFullName()<<+" : transform of <"
57 <<bbtk::TypeName(bbGetInputIn().type())<<"> into <"
58 <<bbtk::TypeName<itkImageTypePointer>()<<"> not implemented");
61 //=================================================================
63 //=================================================================
64 // BlackBox declaration
65 template <class itkImageTypePointer, class itkImageTypeConstPointer>
66 class AnyImageToConstTypedImage : public bbtk::AtomicBlackBox
68 BBTK_TEMPLATE2_BLACK_BOX_INTERFACE(AnyImageToConstTypedImage,
71 itkImageTypeConstPointer);
72 BBTK_DECLARE_INPUT(In,anyImagePointer);
73 BBTK_DECLARE_OUTPUT(Out,itkImageTypeConstPointer);
77 //=================================================================
79 //=================================================================
80 // BlackBox description
81 BBTK_BEGIN_DESCRIBE_TEMPLATE2_BLACK_BOX(AnyImageToConstTypedImage,
82 bbtk::AtomicBlackBox);
83 BBTK_NAME(bbtk::HumanTypeName<anyImagePointer>() + "To" +
84 bbtk::HumanTypeName<T2>());
85 BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
86 BBTK_DESCRIPTION("Converts a generic itk image pointer ("+
87 bbtk::HumanTypeName<anyImagePointer>()+
88 ") into a const typed itk image pointer ("+
89 bbtk::HumanTypeName<T2>()+")");
90 BBTK_CATEGORY("adaptor");
91 BBTK_DEFAULT_ADAPTOR();
92 BBTK_TEMPLATE2_INPUT(AnyImageToConstTypedImage,In,
93 "Input generic image pointer",anyImagePointer);
94 BBTK_TEMPLATE2_OUTPUT(AnyImageToConstTypedImage,Out,
95 "Output const typed image pointer",T2);
96 BBTK_END_DESCRIBE_TEMPLATE2_BLACK_BOX(AnyImageToConstTypedImage);
97 //=================================================================
99 //=================================================================
100 template <class itkImageTypePointer, class itkImageTypeConstPointer>
101 void AnyImageToConstTypedImage<itkImageTypePointer,
102 itkImageTypeConstPointer>::DoIt()
104 if ( bbGetInputIn().type() == typeid(itkImageTypeConstPointer) )
106 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypeConstPointer >() );
108 else if ( bbGetInputIn().type() == typeid(itkImageTypePointer) )
110 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypePointer >() );
114 bbtkError(this->bbGetFullName()<<+" : transform of <"
115 <<bbtk::TypeName(bbGetInputIn().type())<<"> into <"
116 <<bbtk::TypeName<itkImageTypeConstPointer>()<<"> not implemented");
119 //=================================================================