#include <cpPlugins/Interface/ProcessObject.h>
// -------------------------------------------------------------------------
-#define cpPlugins_Interface_Define_ProcessObject( O, S ) \
+#define cpPlugins_Define_ProcessObject( O, S ) \
class cpPlugins_Interface_EXPORT O \
: public S \
{ \
}
// -------------------------------------------------------------------------
-#define cpPlugins_Interface_Code_ProcessObject( O ) \
+#define cpPlugins_Code_ProcessObject( O ) \
cpPlugins::Interface::O::O( ) : Superclass( ) \
{ \
this->m_ClassName = "cpPlugins::Interface::#O"; \
} \
cpPlugins::Interface::O::~O( ) { }
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle( T, D, I, O, R, F ) \
+ if( ( O = I->GetITK< itk::Image< T, D > >( ) ) != NULL ) \
+ R = this->F< itk::Image< T, D > >( O )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_Demangle( A, T, DI, DA, I, O, R, F ) \
+ if( ( O = I->GetITK< itk::Image< A< T, DA >, DI > >( ) ) != NULL ) \
+ R = this->F< itk::Image< A< T, DA >, DI > >( O )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle( T, D, I, O, R, F ) \
+ if( ( O = I->GetITK< itk::VectorImage< T, D > >( ) ) != NULL ) \
+ R = this->F< itk::VectorImage< T, D > >( O )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayVectorImage_Demangle( A, T, DI, DA, I, O, R, F ) \
+ if( ( O = I->GetITK< itk::VectorImage< A< T, DA >, DI > >( ) ) != NULL ) \
+ r = this->F< itk::VectorImage< A< T, DA >, DI > >( O )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllScalarTypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle( char, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( short, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( int, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( long, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( unsigned char, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( unsigned short, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( unsigned int, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( unsigned long, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( float, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( double, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllComplexTypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle( std::complex< float >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( std::complex< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllRGBTypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle( itk::RGBPixel< char >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< short >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< int >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< long >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< unsigned char >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< unsigned short >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< unsigned int >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< unsigned long >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< float >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBPixel< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllRGBATypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle( itk::RGBAPixel< char >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< short >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< int >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< long >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< unsigned char >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< unsigned short >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< unsigned int >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< unsigned long >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< float >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::RGBAPixel< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllDiffusionTensor3DTypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle( itk::DiffusionTensor3D< float >, D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::DiffusionTensor3D< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_Demangle_AllVectorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayImage_Demangle( itk::Vector, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle( itk::Vector, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_Demangle_AllCovariantVectorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayImage_Demangle( itk::CovariantVector, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle( itk::CovariantVector, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_Demangle_AllPointTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayImage_Demangle( itk::Point, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle( itk::Point, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_Demangle_AllSymmetricSecondRankTensorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayImage_Demangle( itk::SymmetricSecondRankTensor, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle( itk::SymmetricSecondRankTensor, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Demangle_AllTypes( D, I, O, R, F ) \
+ cpPlugins_Image_Demangle_AllScalarTypes( D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle_AllComplexTypes( D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle_AllRGBTypes( D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle_AllRGBATypes( D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle_AllDiffusionTensor3DTypes( D, I, O, R, F ); \
+ else cpPlugins_Image_Demangle( itk::Offset< D >, D, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle_AllVectorTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle_AllCovariantVectorTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle_AllPointTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayImage_Demangle_AllSymmetricSecondRankTensorTypes( D, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllScalarTypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle( char, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( short, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( int, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( long, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( unsigned char, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( unsigned short, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( unsigned int, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( unsigned long, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( float, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( double, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllComplexTypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle( std::complex< float >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( std::complex< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllRGBTypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle( itk::RGBPixel< char >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< short >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< int >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< long >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< unsigned char >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< unsigned short >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< unsigned int >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< unsigned long >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< float >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBPixel< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllRGBATypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle( itk::RGBAPixel< char >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< short >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< int >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< long >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< unsigned char >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< unsigned short >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< unsigned int >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< unsigned long >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< float >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::RGBAPixel< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllDiffusionTensor3DTypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle( itk::DiffusionTensor3D< float >, D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::DiffusionTensor3D< double >, D, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayVectorImage_Demangle_AllVectorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayVectorImage_Demangle( itk::Vector, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle( itk::Vector, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayVectorImage_Demangle_AllCovariantVectorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayVectorImage_Demangle( itk::CovariantVector, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle( itk::CovariantVector, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayVectorImage_Demangle_AllPointTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayVectorImage_Demangle( itk::Point, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle( itk::Point, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayVectorImage_Demangle_AllSymmetricSecondRankTensorTypes( DI, DA, I, O, R, F ) \
+ cpPlugins_ArrayVectorImage_Demangle( itk::SymmetricSecondRankTensor, float, DI, DA, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle( itk::SymmetricSecondRankTensor, double, DI, DA, I, O, R, F )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VectorImage_Demangle_AllTypes( D, I, O, R, F ) \
+ cpPlugins_VectorImage_Demangle_AllScalarTypes( D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle_AllComplexTypes( D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle_AllRGBTypes( D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle_AllRGBATypes( D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle_AllDiffusionTensor3DTypes( D, I, O, R, F ); \
+ else cpPlugins_VectorImage_Demangle( itk::Offset< D >, D, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle_AllVectorTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle_AllCovariantVectorTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle_AllPointTypes( D, D, I, O, R, F ); \
+ else cpPlugins_ArrayVectorImage_Demangle_AllSymmetricSecondRankTensorTypes( D, D, I, O, R, F )
+
namespace cpPlugins
{
namespace Interface
{
- cpPlugins_Interface_Define_ProcessObject( SourceObject, ProcessObject );
- cpPlugins_Interface_Define_ProcessObject( SinkObject, ProcessObject );
- cpPlugins_Interface_Define_ProcessObject( FilterObject, ProcessObject );
- cpPlugins_Interface_Define_ProcessObject( ImageSource, SourceObject );
- cpPlugins_Interface_Define_ProcessObject( MeshSource, SourceObject );
- cpPlugins_Interface_Define_ProcessObject( ImageSink, SinkObject );
- cpPlugins_Interface_Define_ProcessObject( MeshSink, SinkObject );
- cpPlugins_Interface_Define_ProcessObject( ImageToImageFitler, FilterObject );
- cpPlugins_Interface_Define_ProcessObject( ImageToMeshFitler, FilterObject );
- cpPlugins_Interface_Define_ProcessObject( MeshToImageFitler, FilterObject );
- cpPlugins_Interface_Define_ProcessObject( MeshToMeshFitler, FilterObject );
+ cpPlugins_Define_ProcessObject( SourceObject, ProcessObject );
+ cpPlugins_Define_ProcessObject( SinkObject, ProcessObject );
+ cpPlugins_Define_ProcessObject( FilterObject, ProcessObject );
+ cpPlugins_Define_ProcessObject( ImageSource, SourceObject );
+ cpPlugins_Define_ProcessObject( MeshSource, SourceObject );
+ cpPlugins_Define_ProcessObject( ImageSink, SinkObject );
+ cpPlugins_Define_ProcessObject( MeshSink, SinkObject );
+ cpPlugins_Define_ProcessObject( ImageToImageFilter, FilterObject );
+ cpPlugins_Define_ProcessObject( ImageToMeshFilter, FilterObject );
+ cpPlugins_Define_ProcessObject( MeshToImageFilter, FilterObject );
+ cpPlugins_Define_ProcessObject( MeshToMeshFilter, FilterObject );
} // ecapseman