1 #ifndef __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__
2 #define __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5 #include <cpPlugins/Interface/ProcessObject.h>
7 // -------------------------------------------------------------------------
8 #define cpPlugins_Interface_Define_ProcessObject( O, S ) \
9 class cpPlugins_Interface_EXPORT O \
14 typedef S Superclass; \
15 typedef itk::SmartPointer< Self > Pointer; \
16 typedef itk::SmartPointer< const Self > ConstPointer; \
18 itkTypeMacro( O, S ); \
24 Self& operator=( const Self& ); \
27 // -------------------------------------------------------------------------
28 #define cpPlugins_Interface_Code_ProcessObject( O ) \
29 cpPlugins::Interface::O::O( ) : Superclass( ) \
31 this->m_ClassName = "cpPlugins::Interface::#O"; \
32 this->m_ClassCategory = "#O"; \
34 cpPlugins::Interface::O::~O( ) { }
36 // -------------------------------------------------------------------------
37 #define cpPlugins_Image_Input_Demangle( T, D, I, O, r, f ) \
38 if( ( O = I->GetITKImage< itk::Image< T, D > >( ) ) != NULL ) \
39 r = this->f< itk::Image< T, D > >( O )
41 // -------------------------------------------------------------------------
42 #define cpPlugins_ImageArray_Input_Demangle( A, T, DP, DI, I, O, r, f ) \
44 ( O = I->GetITKImage< itk::Image< A< T, DP >, DI > >( ) ) != NULL \
46 r = this->f< itk::Image< A< T, DP >, DI > >( O )
48 // -------------------------------------------------------------------------
49 #define cpPlugins_Image_Input_Demangle_Dimension_AllScalarTypes( D, I, O, r, f ) \
50 cpPlugins_Image_Input_Demangle( char, D, I, O, r, f ); \
51 else cpPlugins_Image_Input_Demangle( short, D, I, O, r, f ); \
52 else cpPlugins_Image_Input_Demangle( int, D, I, O, r, f ); \
53 else cpPlugins_Image_Input_Demangle( long, D, I, O, r, f ); \
54 else cpPlugins_Image_Input_Demangle( float, D, I, O, r, f ); \
55 else cpPlugins_Image_Input_Demangle( double, D, I, O, r, f ); \
56 else cpPlugins_Image_Input_Demangle( unsigned char, D, I, O, r, f ); \
57 else cpPlugins_Image_Input_Demangle( unsigned short, D, I, O, r, f ); \
58 else cpPlugins_Image_Input_Demangle( unsigned int, D, I, O, r, f ); \
59 else cpPlugins_Image_Input_Demangle( unsigned long, D, I, O, r, f )
61 // -------------------------------------------------------------------------
62 #define cpPlugins_Image_Input_Demangle_Dimension_AllTypes( D, I, O, r, f ) \
63 cpPlugins_Image_Input_Demangle( char, D, I, O, r, f ); \
64 else cpPlugins_Image_Input_Demangle( short, D, I, O, r, f ); \
65 else cpPlugins_Image_Input_Demangle( int, D, I, O, r, f ); \
66 else cpPlugins_Image_Input_Demangle( long, D, I, O, r, f ); \
67 else cpPlugins_Image_Input_Demangle( float, D, I, O, r, f ); \
68 else cpPlugins_Image_Input_Demangle( double, D, I, O, r, f ); \
69 else cpPlugins_Image_Input_Demangle( unsigned char, D, I, O, r, f ); \
70 else cpPlugins_Image_Input_Demangle( unsigned short, D, I, O, r, f ); \
71 else cpPlugins_Image_Input_Demangle( unsigned int, D, I, O, r, f ); \
72 else cpPlugins_Image_Input_Demangle( unsigned long, D, I, O, r, f ); \
73 else cpPlugins_Image_Input_Demangle( \
74 std::complex< float >, D, I, O, r, f \
76 else cpPlugins_Image_Input_Demangle( \
77 std::complex< double >, D, I, O, r, f \
79 else cpPlugins_Image_Input_Demangle( \
80 itk::RGBPixel< char >, D, I, O, r, f \
82 else cpPlugins_Image_Input_Demangle( \
83 itk::RGBPixel< short >, D, I, O, r, f \
85 else cpPlugins_Image_Input_Demangle( \
86 itk::RGBPixel< int >, D, I, O, r, f \
88 else cpPlugins_Image_Input_Demangle( \
89 itk::RGBPixel< long >, D, I, O, r, f \
91 else cpPlugins_Image_Input_Demangle( \
92 itk::RGBPixel< unsigned char >, D, I, O, r, f \
94 else cpPlugins_Image_Input_Demangle( \
95 itk::RGBPixel< unsigned short >, D, I, O, r, f \
97 else cpPlugins_Image_Input_Demangle( \
98 itk::RGBPixel< unsigned int >, D, I, O, r, f \
100 else cpPlugins_Image_Input_Demangle( \
101 itk::RGBPixel< unsigned long >, D, I, O, r, f \
103 else cpPlugins_Image_Input_Demangle( \
104 itk::RGBPixel< float >, D, I, O, r, f \
106 else cpPlugins_Image_Input_Demangle( \
107 itk::RGBPixel< double >, D, I, O, r, f \
109 else cpPlugins_Image_Input_Demangle( \
110 itk::RGBAPixel< char >, D, I, O, r, f \
112 else cpPlugins_Image_Input_Demangle( \
113 itk::RGBAPixel< short >, D, I, O, r, f \
115 else cpPlugins_Image_Input_Demangle( \
116 itk::RGBAPixel< int >, D, I, O, r, f \
118 else cpPlugins_Image_Input_Demangle( \
119 itk::RGBAPixel< long >, D, I, O, r, f \
121 else cpPlugins_Image_Input_Demangle( \
122 itk::RGBAPixel< unsigned char >, D, I, O, r, f \
124 else cpPlugins_Image_Input_Demangle( \
125 itk::RGBAPixel< unsigned short >, D, I, O, r, f \
127 else cpPlugins_Image_Input_Demangle( \
128 itk::RGBAPixel< unsigned int >, D, I, O, r, f \
130 else cpPlugins_Image_Input_Demangle( \
131 itk::RGBAPixel< unsigned long >, D, I, O, r, f \
133 else cpPlugins_Image_Input_Demangle( \
134 itk::RGBAPixel< float >, D, I, O, r, f \
136 else cpPlugins_Image_Input_Demangle( \
137 itk::RGBAPixel< double >, D, I, O, r, f \
139 else cpPlugins_Image_Input_Demangle( \
140 itk::Offset< D >, D, I, O, r, f \
142 else cpPlugins_ImageArray_Input_Demangle( \
143 itk::Vector, float, D, D, I, O, r, f \
145 else cpPlugins_ImageArray_Input_Demangle( \
146 itk::Vector, double, D, D, I, O, r, f \
148 else cpPlugins_ImageArray_Input_Demangle( \
149 itk::Point, float, D, D, I, O, r, f \
151 else cpPlugins_ImageArray_Input_Demangle( \
152 itk::Point, double, D, D, I, O, r, f \
154 else cpPlugins_ImageArray_Input_Demangle( \
155 itk::CovariantVector, float, D, D, I, O, r, f \
157 else cpPlugins_ImageArray_Input_Demangle( \
158 itk::CovariantVector, double, D, D, I, O, r, f \
160 else cpPlugins_ImageArray_Input_Demangle( \
161 itk::SymmetricSecondRankTensor, float, D, D, I, O, r, f \
163 else cpPlugins_ImageArray_Input_Demangle( \
164 itk::SymmetricSecondRankTensor, double, D, D, I, O, r, f \
171 cpPlugins_Interface_Define_ProcessObject( SourceObject, ProcessObject );
172 cpPlugins_Interface_Define_ProcessObject( SinkObject, ProcessObject );
173 cpPlugins_Interface_Define_ProcessObject( FilterObject, ProcessObject );
174 cpPlugins_Interface_Define_ProcessObject( ImageSource, SourceObject );
175 cpPlugins_Interface_Define_ProcessObject( MeshSource, SourceObject );
176 cpPlugins_Interface_Define_ProcessObject( ImageSink, SinkObject );
177 cpPlugins_Interface_Define_ProcessObject( MeshSink, SinkObject );
178 cpPlugins_Interface_Define_ProcessObject(
179 ImageToImageFilter, FilterObject
181 cpPlugins_Interface_Define_ProcessObject(
182 ImageToMeshFilter, FilterObject
184 cpPlugins_Interface_Define_ProcessObject(
185 MeshToImageFilter, FilterObject
187 cpPlugins_Interface_Define_ProcessObject(
188 MeshToMeshFilter, FilterObject
195 #endif // __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__