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< unsigned char >, D, I, O, r, f \
88 else cpPlugins_Image_Input_Demangle( \
89 itk::RGBPixel< unsigned short >, D, I, O, r, f \
91 else cpPlugins_Image_Input_Demangle( \
92 itk::RGBAPixel< char >, D, I, O, r, f \
94 else cpPlugins_Image_Input_Demangle( \
95 itk::RGBAPixel< short >, D, I, O, r, f \
97 else cpPlugins_Image_Input_Demangle( \
98 itk::RGBAPixel< unsigned char >, D, I, O, r, f \
100 else cpPlugins_Image_Input_Demangle( \
101 itk::RGBAPixel< unsigned short >, D, I, O, r, f \
103 else cpPlugins_Image_Input_Demangle( \
104 itk::Offset< D >, D, I, O, r, f \
106 else cpPlugins_ImageArray_Input_Demangle( \
107 itk::Vector, float, D, D, I, O, r, f \
109 else cpPlugins_ImageArray_Input_Demangle( \
110 itk::Vector, double, D, D, I, O, r, f \
112 else cpPlugins_ImageArray_Input_Demangle( \
113 itk::Point, float, D, D, I, O, r, f \
115 else cpPlugins_ImageArray_Input_Demangle( \
116 itk::Point, double, D, D, I, O, r, f \
118 else cpPlugins_ImageArray_Input_Demangle( \
119 itk::CovariantVector, float, D, D, I, O, r, f \
121 else cpPlugins_ImageArray_Input_Demangle( \
122 itk::CovariantVector, double, D, D, I, O, r, f \
124 else cpPlugins_ImageArray_Input_Demangle( \
125 itk::SymmetricSecondRankTensor, float, D, D, I, O, r, f \
127 else cpPlugins_ImageArray_Input_Demangle( \
128 itk::SymmetricSecondRankTensor, double, D, D, I, O, r, f \
135 cpPlugins_Interface_Define_ProcessObject( SourceObject, ProcessObject );
136 cpPlugins_Interface_Define_ProcessObject( SinkObject, ProcessObject );
137 cpPlugins_Interface_Define_ProcessObject( FilterObject, ProcessObject );
138 cpPlugins_Interface_Define_ProcessObject( ImageSource, SourceObject );
139 cpPlugins_Interface_Define_ProcessObject( MeshSource, SourceObject );
140 cpPlugins_Interface_Define_ProcessObject( ImageSink, SinkObject );
141 cpPlugins_Interface_Define_ProcessObject( MeshSink, SinkObject );
142 cpPlugins_Interface_Define_ProcessObject( ImageToImageFilter, FilterObject );
143 cpPlugins_Interface_Define_ProcessObject( ImageToMeshFilter, FilterObject );
144 cpPlugins_Interface_Define_ProcessObject( MeshToImageFilter, FilterObject );
145 cpPlugins_Interface_Define_ProcessObject( MeshToMeshFilter, FilterObject );
151 #endif // __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__