3 #ifndef __bbitkAnyImageToTypedImage_h_INCLUDED__
4 #define __bbitkAnyImageToTypedImage_h_INCLUDED__
6 #include "bbtkUserBlackBox.h"
7 #include "bbitkImage.h"
12 //=================================================================
13 // UserBlackBox declaration
14 template <class itkImageTypePointer>
15 class AnyImageToTypedImage : public bbtk::UserBlackBox
17 BBTK_USER_BLACK_BOX_INTERFACE(AnyImageToTypedImage,
19 BBTK_DECLARE_INPUT(In,anyImagePointer);
20 BBTK_DECLARE_OUTPUT(Out,itkImageTypePointer);
24 //=================================================================
26 //=================================================================
27 // UserBlackBox description
28 BBTK_BEGIN_DESCRIBE_TEMPLATE_BLACK_BOX(AnyImageToTypedImage);
29 BBTK_NAME(bbtk::HumanTypeName<anyImagePointer>() + "To"+bbtk::HumanTypeName<T>());
30 BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
31 BBTK_DESCRIPTION("Transforms a generic itk image ("+
32 bbtk::HumanTypeName<anyImagePointer>()+
33 ") into a typed itk image ("+
34 bbtk::HumanTypeName<T>()+"*)");
35 BBTK_DEFAULT_ADAPTOR();
36 BBTK_TEMPLATE_INPUT(AnyImageToTypedImage,In,
37 "Input generic image",anyImagePointer);
38 BBTK_TEMPLATE_OUTPUT(AnyImageToTypedImage,Out,
39 "Output typed image",T);
40 BBTK_END_DESCRIBE_TEMPLATE_BLACK_BOX(AnyImageToTypedImage);
41 //=================================================================
43 //=================================================================
44 template <class itkImageTypePointer>
45 void AnyImageToTypedImage<itkImageTypePointer>::DoIt()
47 if ( bbGetInputIn().type() == typeid(itkImageTypePointer) )
49 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypePointer >() );
53 bbtkError(this->bbGetFullName()<<+" : transform of <"
54 <<bbtk::TypeName(bbGetInputIn().type())<<"> into <"
55 <<bbtk::TypeName<itkImageTypePointer>()<<"> not implemented");
58 //=================================================================
60 //=================================================================
61 // UserBlackBox declaration
62 template <class itkImageTypePointer, class itkImageTypeConstPointer>
63 class AnyImageToConstTypedImage : public bbtk::UserBlackBox
65 BBTK_USER_BLACK_BOX_INTERFACE(AnyImageToConstTypedImage,
67 BBTK_DECLARE_INPUT(In,anyImagePointer);
68 BBTK_DECLARE_OUTPUT(Out,itkImageTypeConstPointer);
72 //=================================================================
74 //=================================================================
75 // UserBlackBox description
76 BBTK_BEGIN_DESCRIBE_TEMPLATE2_BLACK_BOX(AnyImageToConstTypedImage);
77 BBTK_NAME("Convert<"+bbtk::TypeName<anyImagePointer>() + "," +
78 bbtk::TypeName<T2>()+">");
79 BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
80 BBTK_DESCRIPTION("Transforms a generic itk image ("+
81 bbtk::TypeName<anyImagePointer>()+
82 ") into a typed itk image ("+
83 bbtk::TypeName<T2>()+"*)");
84 BBTK_DEFAULT_ADAPTOR();
85 BBTK_TEMPLATE2_INPUT(AnyImageToConstTypedImage,In,
86 "Input generic image",anyImagePointer);
87 BBTK_TEMPLATE2_OUTPUT(AnyImageToConstTypedImage,Out,
88 "Output typed image",T2);
89 BBTK_END_DESCRIBE_TEMPLATE2_BLACK_BOX(AnyImageToConstTypedImage);
90 //=================================================================
92 //=================================================================
93 template <class itkImageTypePointer, class itkImageTypeConstPointer>
94 void AnyImageToConstTypedImage<itkImageTypePointer,
95 itkImageTypeConstPointer>::DoIt()
97 if ( bbGetInputIn().type() == typeid(itkImageTypeConstPointer) )
99 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypeConstPointer >() );
101 else if ( bbGetInputIn().type() == typeid(itkImageTypePointer) )
103 bbSetOutputOut ( bbGetInputIn().template unsafe_get < itkImageTypePointer >() );
107 bbtkError(this->bbGetFullName()<<+" : transform of <"
108 <<bbtk::TypeName(bbGetInputIn().type())<<"> into <"
109 <<bbtk::TypeName<itkImageTypeConstPointer>()<<"> not implemented");
112 //=================================================================