MeVisLabToolboxReference
FMEwork/ITK/Sources/ITK/MLITK/ITKSupport/mlITKMultiBaseConnect.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00005 
00010 //----------------------------------------------------------------------------------
00011 #ifndef __mlITKMultiBaseConnect_H
00012 #define __mlITKMultiBaseConnect_H
00013 
00015 // Include dll-specific settings.
00016 #include "mlInitSystemITKSupport.h"
00017 #include "mlITKMLBaseWrapper.h"
00018 
00019 #include <itkImage.h>
00020 #include <itkPoint.h>
00021 #include <itkVector.h>
00022 #include <itkFiniteDifferenceFunction.h>
00023 #include <itkPDEDeformableRegistrationFunction.h>
00024 #include <itkImageFunction.h>
00025 
00026 // Define voxel types.
00027 typedef itk::Vector<float ,2>                                    Vox2DFloatVecType ;
00028 typedef itk::Vector<float ,3>                                    Vox3DFloatVecType ;
00029 typedef itk::Vector<float ,4>                                    Vox4DFloatVecType ;
00030 typedef itk::Vector<float ,6>                                    Vox6DFloatVecType ;
00031 typedef itk::Vector<float ,8>                                    Vox8DFloatVecType ;
00032 
00033 typedef itk::Vector<double,2>                                    Vox2DDoubleVecType;
00034 typedef itk::Vector<double,3>                                    Vox3DDoubleVecType;
00035 typedef itk::Vector<double,4>                                    Vox4DDoubleVecType;
00036 typedef itk::Vector<double,6>                                    Vox6DDoubleVecType;
00037 typedef itk::Vector<double,8>                                    Vox8DDoubleVecType;
00038 
00039 // Define images using the upper voxel types.
00040 typedef itk::Image<MLint8,            2>                         Img2OfVoxInt8Type       ;
00041 typedef itk::Image<MLint16,           2>                         Img2OfVoxInt16Type      ;
00042 typedef itk::Image<MLint32,           2>                         Img2OfVoxInt32Type      ;
00043 typedef itk::Image<MLuint8,           2>                         Img2OfVoxUInt8Type      ;
00044 typedef itk::Image<MLuint16,          2>                         Img2OfVoxUInt16Type     ;
00045 typedef itk::Image<MLuint32,          2>                         Img2OfVoxUInt32Type     ;
00046 typedef itk::Image<MLfloat,           2>                         Img2OfVoxFloatType      ;
00047 typedef itk::Image<MLdouble,          2>                         Img2OfVoxDoubleType     ;
00048 typedef itk::Image<Vox2DFloatVecType, 2>                         Img2OfVox2DFloatVecType ;
00049 typedef itk::Image<Vox2DDoubleVecType,2>                         Img2OfVox2DDoubleVecType;
00050 typedef itk::Image<Vox3DFloatVecType, 2>                         Img2OfVox3DFloatVecType ;
00051 typedef itk::Image<Vox3DDoubleVecType,2>                         Img2OfVox3DDoubleVecType;
00052 typedef itk::Image<Vox4DFloatVecType, 2>                         Img2OfVox4DFloatVecType ;
00053 typedef itk::Image<Vox4DDoubleVecType,2>                         Img2OfVox4DDoubleVecType;
00054 typedef itk::Image<Vox6DFloatVecType, 2>                         Img2OfVox6DFloatVecType ;
00055 typedef itk::Image<Vox6DDoubleVecType,2>                         Img2OfVox6DDoubleVecType;
00056 typedef itk::Image<Vox8DFloatVecType, 2>                         Img2OfVox8DFloatVecType ;
00057 typedef itk::Image<Vox8DDoubleVecType,2>                         Img2OfVox8DDoubleVecType;
00058 
00059 typedef itk::Image<MLint8,            3>                         Img3OfVoxInt8Type       ;
00060 typedef itk::Image<MLint16,           3>                         Img3OfVoxInt16Type      ;
00061 typedef itk::Image<MLint32,           3>                         Img3OfVoxInt32Type      ;
00062 typedef itk::Image<MLuint8,           3>                         Img3OfVoxUInt8Type      ;
00063 typedef itk::Image<MLuint16,          3>                         Img3OfVoxUInt16Type     ;
00064 typedef itk::Image<MLuint32,          3>                         Img3OfVoxUInt32Type     ;
00065 typedef itk::Image<MLfloat,           3>                         Img3OfVoxFloatType      ;
00066 typedef itk::Image<MLdouble,          3>                         Img3OfVoxDoubleType     ;
00067 typedef itk::Image<Vox2DFloatVecType, 3>                         Img3OfVox2DFloatVecType ;
00068 typedef itk::Image<Vox2DDoubleVecType,3>                         Img3OfVox2DDoubleVecType;
00069 typedef itk::Image<Vox3DFloatVecType, 3>                         Img3OfVox3DFloatVecType ;
00070 typedef itk::Image<Vox3DDoubleVecType,3>                         Img3OfVox3DDoubleVecType;
00071 typedef itk::Image<Vox4DFloatVecType, 3>                         Img3OfVox4DFloatVecType ;
00072 typedef itk::Image<Vox4DDoubleVecType,3>                         Img3OfVox4DDoubleVecType;
00073 typedef itk::Image<Vox6DFloatVecType, 3>                         Img3OfVox6DFloatVecType ;
00074 typedef itk::Image<Vox6DDoubleVecType,3>                         Img3OfVox6DDoubleVecType;
00075 typedef itk::Image<Vox8DFloatVecType, 3>                         Img3OfVox8DFloatVecType ;
00076 typedef itk::Image<Vox8DDoubleVecType,3>                         Img3OfVox8DDoubleVecType;
00077 
00078 
00079 // Define difference functions on the upperly defined image types.
00080 typedef itk::FiniteDifferenceFunction<Img2OfVoxInt8Type       >   FiniteDifferenceFunctionImg2OfVoxInt8Type       ;
00081 typedef itk::FiniteDifferenceFunction<Img2OfVoxInt16Type      >   FiniteDifferenceFunctionImg2OfVoxInt16Type      ;
00082 typedef itk::FiniteDifferenceFunction<Img2OfVoxInt32Type      >   FiniteDifferenceFunctionImg2OfVoxInt32Type      ;
00083 typedef itk::FiniteDifferenceFunction<Img2OfVoxUInt8Type      >   FiniteDifferenceFunctionImg2OfVoxUInt8Type      ;
00084 typedef itk::FiniteDifferenceFunction<Img2OfVoxUInt16Type     >   FiniteDifferenceFunctionImg2OfVoxUInt16Type     ;
00085 typedef itk::FiniteDifferenceFunction<Img2OfVoxUInt32Type     >   FiniteDifferenceFunctionImg2OfVoxUInt32Type     ;
00086 typedef itk::FiniteDifferenceFunction<Img2OfVoxFloatType      >   FiniteDifferenceFunctionImg2OfVoxFloatType      ;
00087 typedef itk::FiniteDifferenceFunction<Img2OfVoxDoubleType     >   FiniteDifferenceFunctionImg2OfVoxDoubleType     ;
00088 typedef itk::FiniteDifferenceFunction<Img2OfVox2DFloatVecType >   FiniteDifferenceFunctionImg2OfVox2DFloatVecType ;
00089 typedef itk::FiniteDifferenceFunction<Img2OfVox2DDoubleVecType>   FiniteDifferenceFunctionImg2OfVox2DDoubleVecType;
00090 typedef itk::FiniteDifferenceFunction<Img2OfVox3DFloatVecType >   FiniteDifferenceFunctionImg2OfVox3DFloatVecType ;
00091 typedef itk::FiniteDifferenceFunction<Img2OfVox3DDoubleVecType>   FiniteDifferenceFunctionImg2OfVox3DDoubleVecType;
00092 typedef itk::FiniteDifferenceFunction<Img2OfVox4DFloatVecType >   FiniteDifferenceFunctionImg2OfVox4DFloatVecType ;
00093 typedef itk::FiniteDifferenceFunction<Img2OfVox4DDoubleVecType>   FiniteDifferenceFunctionImg2OfVox4DDoubleVecType;
00094 typedef itk::FiniteDifferenceFunction<Img2OfVox6DFloatVecType >   FiniteDifferenceFunctionImg2OfVox6DFloatVecType ;
00095 typedef itk::FiniteDifferenceFunction<Img2OfVox6DDoubleVecType>   FiniteDifferenceFunctionImg2OfVox6DDoubleVecType;
00096 typedef itk::FiniteDifferenceFunction<Img2OfVox8DFloatVecType >   FiniteDifferenceFunctionImg2OfVox8DFloatVecType ;
00097 typedef itk::FiniteDifferenceFunction<Img2OfVox8DDoubleVecType>   FiniteDifferenceFunctionImg2OfVox8DDoubleVecType;
00098 
00099 typedef itk::FiniteDifferenceFunction<Img3OfVoxInt8Type       >   FiniteDifferenceFunctionImg3OfVoxInt8Type       ;
00100 typedef itk::FiniteDifferenceFunction<Img3OfVoxInt16Type      >   FiniteDifferenceFunctionImg3OfVoxInt16Type      ;
00101 typedef itk::FiniteDifferenceFunction<Img3OfVoxInt32Type      >   FiniteDifferenceFunctionImg3OfVoxInt32Type      ;
00102 typedef itk::FiniteDifferenceFunction<Img3OfVoxUInt8Type      >   FiniteDifferenceFunctionImg3OfVoxUInt8Type      ;
00103 typedef itk::FiniteDifferenceFunction<Img3OfVoxUInt16Type     >   FiniteDifferenceFunctionImg3OfVoxUInt16Type     ;
00104 typedef itk::FiniteDifferenceFunction<Img3OfVoxUInt32Type     >   FiniteDifferenceFunctionImg3OfVoxUInt32Type     ;
00105 typedef itk::FiniteDifferenceFunction<Img3OfVoxFloatType      >   FiniteDifferenceFunctionImg3OfVoxFloatType      ;
00106 typedef itk::FiniteDifferenceFunction<Img3OfVoxDoubleType     >   FiniteDifferenceFunctionImg3OfVoxDoubleType     ;
00107 typedef itk::FiniteDifferenceFunction<Img3OfVox2DFloatVecType >   FiniteDifferenceFunctionImg3OfVox2DFloatVecType ;
00108 typedef itk::FiniteDifferenceFunction<Img3OfVox2DDoubleVecType>   FiniteDifferenceFunctionImg3OfVox2DDoubleVecType;
00109 typedef itk::FiniteDifferenceFunction<Img3OfVox3DFloatVecType >   FiniteDifferenceFunctionImg3OfVox3DFloatVecType ;
00110 typedef itk::FiniteDifferenceFunction<Img3OfVox3DDoubleVecType>   FiniteDifferenceFunctionImg3OfVox3DDoubleVecType;
00111 typedef itk::FiniteDifferenceFunction<Img3OfVox4DFloatVecType >   FiniteDifferenceFunctionImg3OfVox4DFloatVecType ;
00112 typedef itk::FiniteDifferenceFunction<Img3OfVox4DDoubleVecType>   FiniteDifferenceFunctionImg3OfVox4DDoubleVecType;
00113 typedef itk::FiniteDifferenceFunction<Img3OfVox6DFloatVecType >   FiniteDifferenceFunctionImg3OfVox6DFloatVecType ;
00114 typedef itk::FiniteDifferenceFunction<Img3OfVox6DDoubleVecType>   FiniteDifferenceFunctionImg3OfVox6DDoubleVecType;
00115 typedef itk::FiniteDifferenceFunction<Img3OfVox8DFloatVecType >   FiniteDifferenceFunctionImg3OfVox8DFloatVecType ;
00116 typedef itk::FiniteDifferenceFunction<Img3OfVox8DDoubleVecType>   FiniteDifferenceFunctionImg3OfVox8DDoubleVecType;
00117 
00118 typedef itk::PDEDeformableRegistrationFunction<Img3OfVoxFloatType,
00119                                                Img3OfVoxFloatType,
00120                                                Img3OfVox3DFloatVecType> PDEDeformableRegFunction3DF3DF3DFVType    ;
00121 
00122 ML_START_NAMESPACE
00123 
00124   //----------------------------------------------------------
00129   //----------------------------------------------------------
00130   class MLITK_SUPPORT_EXPORT MultiBaseType : public Base{
00131   public:
00132 
00133     //------------------------------------------------------------------------------
00135     //------------------------------------------------------------------------------
00136     MultiBaseType() : Base(){
00137       // Initialize all pointers to NULL. Only those pointers are going to
00138       // be defined which can be instantiated by the module exporting an
00139       // object of this class.
00140       m_FiniteDifferenceFunctionImg2OfVoxInt8Type        = NULL;
00141       m_FiniteDifferenceFunctionImg2OfVoxInt16Type       = NULL;
00142       m_FiniteDifferenceFunctionImg2OfVoxInt32Type       = NULL;
00143       m_FiniteDifferenceFunctionImg2OfVoxUInt8Type       = NULL;
00144       m_FiniteDifferenceFunctionImg2OfVoxUInt16Type      = NULL;
00145       m_FiniteDifferenceFunctionImg2OfVoxUInt32Type      = NULL;
00146       m_FiniteDifferenceFunctionImg2OfVoxFloatType       = NULL;
00147       m_FiniteDifferenceFunctionImg2OfVoxDoubleType      = NULL;
00148       m_FiniteDifferenceFunctionImg2OfVox2DFloatVecType  = NULL;
00149       m_FiniteDifferenceFunctionImg2OfVox2DDoubleVecType = NULL;
00150       m_FiniteDifferenceFunctionImg2OfVox3DDoubleVecType = NULL;
00151       m_FiniteDifferenceFunctionImg2OfVox3DFloatVecType  = NULL;
00152       m_FiniteDifferenceFunctionImg2OfVox4DDoubleVecType = NULL;
00153       m_FiniteDifferenceFunctionImg2OfVox4DFloatVecType  = NULL;
00154       m_FiniteDifferenceFunctionImg2OfVox6DDoubleVecType = NULL;
00155       m_FiniteDifferenceFunctionImg2OfVox6DFloatVecType  = NULL;
00156       m_FiniteDifferenceFunctionImg2OfVox8DDoubleVecType = NULL;
00157       m_FiniteDifferenceFunctionImg2OfVox8DFloatVecType  = NULL;
00158 
00159       m_FiniteDifferenceFunctionImg3OfVoxInt8Type        = NULL;
00160       m_FiniteDifferenceFunctionImg3OfVoxInt16Type       = NULL;
00161       m_FiniteDifferenceFunctionImg3OfVoxInt32Type       = NULL;
00162       m_FiniteDifferenceFunctionImg3OfVoxUInt8Type       = NULL;
00163       m_FiniteDifferenceFunctionImg3OfVoxUInt16Type      = NULL;
00164       m_FiniteDifferenceFunctionImg3OfVoxUInt32Type      = NULL;
00165       m_FiniteDifferenceFunctionImg3OfVoxFloatType       = NULL;
00166       m_FiniteDifferenceFunctionImg3OfVoxDoubleType      = NULL;
00167       m_FiniteDifferenceFunctionImg3OfVox2DFloatVecType  = NULL;
00168       m_FiniteDifferenceFunctionImg3OfVox2DDoubleVecType = NULL;
00169       m_FiniteDifferenceFunctionImg3OfVox3DFloatVecType  = NULL;
00170       m_FiniteDifferenceFunctionImg3OfVox3DDoubleVecType = NULL;
00171       m_FiniteDifferenceFunctionImg3OfVox4DFloatVecType  = NULL;
00172       m_FiniteDifferenceFunctionImg3OfVox4DDoubleVecType = NULL;
00173       m_FiniteDifferenceFunctionImg3OfVox6DFloatVecType  = NULL;
00174       m_FiniteDifferenceFunctionImg3OfVox6DDoubleVecType = NULL;
00175       m_FiniteDifferenceFunctionImg3OfVox8DFloatVecType  = NULL;
00176       m_FiniteDifferenceFunctionImg3OfVox8DDoubleVecType = NULL;
00177 
00178       m_PDEDeformableRegFunction3DF3DF3DFVType           = NULL;
00179     }
00180 
00181     //------------------------------------------------------------------------------
00183     //------------------------------------------------------------------------------
00184     virtual ~MultiBaseType(){ }
00185 
00186     //------------------------------------------------------------------------------
00188     //------------------------------------------------------------------------------
00189     FiniteDifferenceFunctionImg2OfVoxInt8Type        ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxInt8Type        *){ return m_FiniteDifferenceFunctionImg2OfVoxInt8Type        ; }
00190     FiniteDifferenceFunctionImg2OfVoxInt16Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxInt16Type       *){ return m_FiniteDifferenceFunctionImg2OfVoxInt16Type       ; }
00191     FiniteDifferenceFunctionImg2OfVoxInt32Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxInt32Type       *){ return m_FiniteDifferenceFunctionImg2OfVoxInt32Type       ; }
00192     FiniteDifferenceFunctionImg2OfVoxUInt8Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxUInt8Type       *){ return m_FiniteDifferenceFunctionImg2OfVoxUInt8Type       ; }
00193     FiniteDifferenceFunctionImg2OfVoxUInt16Type      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxUInt16Type      *){ return m_FiniteDifferenceFunctionImg2OfVoxUInt16Type      ; }
00194     FiniteDifferenceFunctionImg2OfVoxUInt32Type      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxUInt32Type      *){ return m_FiniteDifferenceFunctionImg2OfVoxUInt32Type      ; }
00195     FiniteDifferenceFunctionImg2OfVoxFloatType       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxFloatType       *){ return m_FiniteDifferenceFunctionImg2OfVoxFloatType       ; }
00196     FiniteDifferenceFunctionImg2OfVoxDoubleType      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVoxDoubleType      *){ return m_FiniteDifferenceFunctionImg2OfVoxDoubleType      ; }
00197     FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox2DFloatVecType  *){ return m_FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ; }
00198     FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox2DDoubleVecType *){ return m_FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ; }
00199     FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox3DFloatVecType  *){ return m_FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ; }
00200     FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox3DDoubleVecType *){ return m_FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ; }
00201     FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox4DFloatVecType  *){ return m_FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ; }
00202     FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox4DDoubleVecType *){ return m_FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ; }
00203     FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox6DFloatVecType  *){ return m_FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ; }
00204     FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox6DDoubleVecType *){ return m_FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ; }
00205     FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox8DFloatVecType  *){ return m_FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ; }
00206     FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg2OfVox8DDoubleVecType *){ return m_FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ; }
00207 
00208     FiniteDifferenceFunctionImg3OfVoxInt8Type        ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxInt8Type        *){ return m_FiniteDifferenceFunctionImg3OfVoxInt8Type        ; }
00209     FiniteDifferenceFunctionImg3OfVoxInt16Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxInt16Type       *){ return m_FiniteDifferenceFunctionImg3OfVoxInt16Type       ; }
00210     FiniteDifferenceFunctionImg3OfVoxInt32Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxInt32Type       *){ return m_FiniteDifferenceFunctionImg3OfVoxInt32Type       ; }
00211     FiniteDifferenceFunctionImg3OfVoxUInt8Type       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxUInt8Type       *){ return m_FiniteDifferenceFunctionImg3OfVoxUInt8Type       ; }
00212     FiniteDifferenceFunctionImg3OfVoxUInt16Type      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxUInt16Type      *){ return m_FiniteDifferenceFunctionImg3OfVoxUInt16Type      ; }
00213     FiniteDifferenceFunctionImg3OfVoxUInt32Type      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxUInt32Type      *){ return m_FiniteDifferenceFunctionImg3OfVoxUInt32Type      ; }
00214     FiniteDifferenceFunctionImg3OfVoxFloatType       ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxFloatType       *){ return m_FiniteDifferenceFunctionImg3OfVoxFloatType       ; }
00215     FiniteDifferenceFunctionImg3OfVoxDoubleType      ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVoxDoubleType      *){ return m_FiniteDifferenceFunctionImg3OfVoxDoubleType      ; }
00216     FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox2DFloatVecType  *){ return m_FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ; }
00217     FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox2DDoubleVecType *){ return m_FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ; }
00218     FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox3DFloatVecType  *){ return m_FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ; }
00219     FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox3DDoubleVecType *){ return m_FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ; }
00220     FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox4DFloatVecType  *){ return m_FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ; }
00221     FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox4DDoubleVecType *){ return m_FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ; }
00222     FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox6DFloatVecType  *){ return m_FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ; }
00223     FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox6DDoubleVecType *){ return m_FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ; }
00224     FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox8DFloatVecType  *){ return m_FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ; }
00225     FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ::Pointer GetFiniteDifferenceFunction(FiniteDifferenceFunctionImg3OfVox8DDoubleVecType *){ return m_FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ; }
00226 
00227     PDEDeformableRegFunction3DF3DF3DFVType           ::Pointer GetFiniteDifferenceFunction(PDEDeformableRegFunction3DF3DF3DFVType           *){ return m_PDEDeformableRegFunction3DF3DF3DFVType           ; }
00229 
00230     //------------------------------------------------------------------------------
00236     //------------------------------------------------------------------------------
00237     bool isFiniteDifferenceFunctionValid(PagedImage *outImg, bool usePDEDeformableFunc=false)
00238     {
00239       if (!outImg){ return false; }
00240 
00241       // Get properties of output image and its data type. From those properties we need
00242       // to determine whether the corresponding FiniteDifferenceFunctionType is available.
00243       const MLDataType dt   = outImg->getDataType();
00244       const size_t numComps = MLTypeGetNumComponents(dt);
00245       const MLint imgDim    = outImg->getImageExtent().getExtDimension();
00246 
00247       // If the pointer member for the specific dimension and data type is non NULL
00248       // then return true, otherwise false.
00249       if (!usePDEDeformableFunc){
00250         if (2==imgDim){
00251           if ((MLint8Type   == dt) && m_FiniteDifferenceFunctionImg2OfVoxInt8Type        ){ return true; }
00252           if ((MLint16Type  == dt) && m_FiniteDifferenceFunctionImg2OfVoxInt16Type       ){ return true; }
00253           if ((MLint32Type  == dt) && m_FiniteDifferenceFunctionImg2OfVoxInt32Type       ){ return true; }
00254           if ((MLuint8Type  == dt) && m_FiniteDifferenceFunctionImg2OfVoxUInt8Type       ){ return true; }
00255           if ((MLuint16Type == dt) && m_FiniteDifferenceFunctionImg2OfVoxUInt16Type      ){ return true; }
00256           if ((MLuint32Type == dt) && m_FiniteDifferenceFunctionImg2OfVoxUInt32Type      ){ return true; }
00257           if ((MLfloatType  == dt) && m_FiniteDifferenceFunctionImg2OfVoxFloatType       ){ return true; }
00258           if ((MLdoubleType == dt) && m_FiniteDifferenceFunctionImg2OfVoxDoubleType      ){ return true; }
00259           if ((2 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ){ return true; }
00260           if ((2 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ){ return true; }
00261           if ((3 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ){ return true; }
00262           if ((3 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ){ return true; }
00263           if ((4 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ){ return true; }
00264           if ((4 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ){ return true; }
00265           if ((6 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ){ return true; }
00266           if ((6 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ){ return true; }
00267           if ((8 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ){ return true; }
00268           if ((8 == numComps)      && m_FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ){ return true; }
00269         }
00270         if (3==imgDim){
00271           if ((MLint8Type   == dt) && m_FiniteDifferenceFunctionImg3OfVoxInt8Type        ){ return true; }
00272           if ((MLint16Type  == dt) && m_FiniteDifferenceFunctionImg3OfVoxInt16Type       ){ return true; }
00273           if ((MLint32Type  == dt) && m_FiniteDifferenceFunctionImg3OfVoxInt32Type       ){ return true; }
00274           if ((MLuint8Type  == dt) && m_FiniteDifferenceFunctionImg3OfVoxUInt8Type       ){ return true; }
00275           if ((MLuint16Type == dt) && m_FiniteDifferenceFunctionImg3OfVoxUInt16Type      ){ return true; }
00276           if ((MLuint32Type == dt) && m_FiniteDifferenceFunctionImg3OfVoxUInt32Type      ){ return true; }
00277           if ((MLfloatType  == dt) && m_FiniteDifferenceFunctionImg3OfVoxFloatType       ){ return true; }
00278           if ((MLdoubleType == dt) && m_FiniteDifferenceFunctionImg3OfVoxDoubleType      ){ return true; }
00279           if ((2 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ){ return true; }
00280           if ((2 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ){ return true; }
00281           if ((3 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ){ return true; }
00282           if ((3 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ){ return true; }
00283           if ((4 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ){ return true; }
00284           if ((4 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ){ return true; }
00285           if ((6 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ){ return true; }
00286           if ((6 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ){ return true; }
00287           if ((8 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ){ return true; }
00288           if ((8 == numComps)      && m_FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ){ return true; }
00289         }
00290       }
00291       if (usePDEDeformableFunc && (3==imgDim)){
00292         if   ((3 == numComps)      && m_PDEDeformableRegFunction3DF3DF3DFVType           ){ return true; }
00293       }
00294 
00295       return false;
00296     }
00297 
00298     //------------------------------------------------------------------------------
00300     //------------------------------------------------------------------------------
00301     void SetFiniteDifferenceFunctionImg2OfVoxInt8Type        (FiniteDifferenceFunctionImg2OfVoxInt8Type        ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxInt8Type        = ptr; }
00302     void SetFiniteDifferenceFunctionImg2OfVoxInt16Type       (FiniteDifferenceFunctionImg2OfVoxInt16Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxInt16Type       = ptr; }
00303     void SetFiniteDifferenceFunctionImg2OfVoxInt32Type       (FiniteDifferenceFunctionImg2OfVoxInt32Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxInt32Type       = ptr; }
00304     void SetFiniteDifferenceFunctionImg2OfVoxUInt8Type       (FiniteDifferenceFunctionImg2OfVoxUInt8Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxUInt8Type       = ptr; }
00305     void SetFiniteDifferenceFunctionImg2OfVoxUInt16Type      (FiniteDifferenceFunctionImg2OfVoxUInt16Type      ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxUInt16Type      = ptr; }
00306     void SetFiniteDifferenceFunctionImg2OfVoxUInt32Type      (FiniteDifferenceFunctionImg2OfVoxUInt32Type      ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxUInt32Type      = ptr; }
00307     void SetFiniteDifferenceFunctionImg2OfVoxFloatType       (FiniteDifferenceFunctionImg2OfVoxFloatType       ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxFloatType       = ptr; }
00308     void SetFiniteDifferenceFunctionImg2OfVoxDoubleType      (FiniteDifferenceFunctionImg2OfVoxDoubleType      ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVoxDoubleType      = ptr; }
00309     void SetFiniteDifferenceFunctionImg2OfVox2DFloatVecType  (FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox2DFloatVecType  = ptr; }
00310     void SetFiniteDifferenceFunctionImg2OfVox2DDoubleVecType (FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox2DDoubleVecType = ptr; }
00311     void SetFiniteDifferenceFunctionImg2OfVox3DFloatVecType  (FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox3DFloatVecType  = ptr; }
00312     void SetFiniteDifferenceFunctionImg2OfVox3DDoubleVecType (FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox3DDoubleVecType = ptr; }
00313     void SetFiniteDifferenceFunctionImg2OfVox4DFloatVecType  (FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox4DFloatVecType  = ptr; }
00314     void SetFiniteDifferenceFunctionImg2OfVox4DDoubleVecType (FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox4DDoubleVecType = ptr; }
00315     void SetFiniteDifferenceFunctionImg2OfVox6DFloatVecType  (FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox6DFloatVecType  = ptr; }
00316     void SetFiniteDifferenceFunctionImg2OfVox6DDoubleVecType (FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox6DDoubleVecType = ptr; }
00317     void SetFiniteDifferenceFunctionImg2OfVox8DFloatVecType  (FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox8DFloatVecType  = ptr; }
00318     void SetFiniteDifferenceFunctionImg2OfVox8DDoubleVecType (FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg2OfVox8DDoubleVecType = ptr; }
00319 
00320     void SetFiniteDifferenceFunctionImg3OfVoxInt8Type        (FiniteDifferenceFunctionImg3OfVoxInt8Type        ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxInt8Type        = ptr; }
00321     void SetFiniteDifferenceFunctionImg3OfVoxInt16Type       (FiniteDifferenceFunctionImg3OfVoxInt16Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxInt16Type       = ptr; }
00322     void SetFiniteDifferenceFunctionImg3OfVoxInt32Type       (FiniteDifferenceFunctionImg3OfVoxInt32Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxInt32Type       = ptr; }
00323     void SetFiniteDifferenceFunctionImg3OfVoxUInt8Type       (FiniteDifferenceFunctionImg3OfVoxUInt8Type       ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxUInt8Type       = ptr; }
00324     void SetFiniteDifferenceFunctionImg3OfVoxUInt16Type      (FiniteDifferenceFunctionImg3OfVoxUInt16Type      ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxUInt16Type      = ptr; }
00325     void SetFiniteDifferenceFunctionImg3OfVoxUInt32Type      (FiniteDifferenceFunctionImg3OfVoxUInt32Type      ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxUInt32Type      = ptr; }
00326     void SetFiniteDifferenceFunctionImg3OfVoxFloatType       (FiniteDifferenceFunctionImg3OfVoxFloatType       ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxFloatType       = ptr; }
00327     void SetFiniteDifferenceFunctionImg3OfVoxDoubleType      (FiniteDifferenceFunctionImg3OfVoxDoubleType      ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVoxDoubleType      = ptr; }
00328     void SetFiniteDifferenceFunctionImg3OfVox2DFloatVecType  (FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox2DFloatVecType  = ptr; }
00329     void SetFiniteDifferenceFunctionImg3OfVox2DDoubleVecType (FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox2DDoubleVecType = ptr; }
00330     void SetFiniteDifferenceFunctionImg3OfVox3DFloatVecType  (FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox3DFloatVecType  = ptr; }
00331     void SetFiniteDifferenceFunctionImg3OfVox3DDoubleVecType (FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox3DDoubleVecType = ptr; }
00332     void SetFiniteDifferenceFunctionImg3OfVox4DFloatVecType  (FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox4DFloatVecType  = ptr; }
00333     void SetFiniteDifferenceFunctionImg3OfVox4DDoubleVecType (FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox4DDoubleVecType = ptr; }
00334     void SetFiniteDifferenceFunctionImg3OfVox6DFloatVecType  (FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox6DFloatVecType  = ptr; }
00335     void SetFiniteDifferenceFunctionImg3OfVox6DDoubleVecType (FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox6DDoubleVecType = ptr; }
00336     void SetFiniteDifferenceFunctionImg3OfVox8DFloatVecType  (FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox8DFloatVecType  = ptr; }
00337     void SetFiniteDifferenceFunctionImg3OfVox8DDoubleVecType (FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ::Pointer ptr){ m_FiniteDifferenceFunctionImg3OfVox8DDoubleVecType = ptr; }
00338 
00339     void SetPDEDeformableRegFunction3DF3DF3DFVType           (PDEDeformableRegFunction3DF3DF3DFVType           ::Pointer ptr){ m_PDEDeformableRegFunction3DF3DF3DFVType           = ptr; }
00341 
00342   private:
00344     MultiBaseType(const MultiBaseType &) : Base() { }
00345 
00347     MultiBaseType &operator=(const MultiBaseType &){ return *this; }
00348 
00350     FiniteDifferenceFunctionImg2OfVoxInt8Type        ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxInt8Type        ;
00351     FiniteDifferenceFunctionImg2OfVoxInt16Type       ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxInt16Type       ;
00352     FiniteDifferenceFunctionImg2OfVoxInt32Type       ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxInt32Type       ;
00353     FiniteDifferenceFunctionImg2OfVoxUInt8Type       ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxUInt8Type       ;
00354     FiniteDifferenceFunctionImg2OfVoxUInt16Type      ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxUInt16Type      ;
00355     FiniteDifferenceFunctionImg2OfVoxUInt32Type      ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxUInt32Type      ;
00356     FiniteDifferenceFunctionImg2OfVoxFloatType       ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxFloatType       ;
00357     FiniteDifferenceFunctionImg2OfVoxDoubleType      ::Pointer   m_FiniteDifferenceFunctionImg2OfVoxDoubleType      ;
00358     FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg2OfVox2DFloatVecType  ;
00359     FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg2OfVox2DDoubleVecType ;
00360     FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg2OfVox3DFloatVecType  ;
00361     FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg2OfVox3DDoubleVecType ;
00362     FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg2OfVox4DFloatVecType  ;
00363     FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg2OfVox4DDoubleVecType ;
00364     FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg2OfVox6DFloatVecType  ;
00365     FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg2OfVox6DDoubleVecType ;
00366     FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg2OfVox8DFloatVecType  ;
00367     FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg2OfVox8DDoubleVecType ;
00368 
00369     FiniteDifferenceFunctionImg3OfVoxInt8Type        ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxInt8Type        ;
00370     FiniteDifferenceFunctionImg3OfVoxInt16Type       ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxInt16Type       ;
00371     FiniteDifferenceFunctionImg3OfVoxInt32Type       ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxInt32Type       ;
00372     FiniteDifferenceFunctionImg3OfVoxUInt8Type       ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxUInt8Type       ;
00373     FiniteDifferenceFunctionImg3OfVoxUInt16Type      ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxUInt16Type      ;
00374     FiniteDifferenceFunctionImg3OfVoxUInt32Type      ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxUInt32Type      ;
00375     FiniteDifferenceFunctionImg3OfVoxFloatType       ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxFloatType       ;
00376     FiniteDifferenceFunctionImg3OfVoxDoubleType      ::Pointer   m_FiniteDifferenceFunctionImg3OfVoxDoubleType      ;
00377     FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg3OfVox2DFloatVecType  ;
00378     FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg3OfVox2DDoubleVecType ;
00379     FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg3OfVox3DFloatVecType  ;
00380     FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg3OfVox3DDoubleVecType ;
00381     FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg3OfVox4DFloatVecType  ;
00382     FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg3OfVox4DDoubleVecType ;
00383     FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg3OfVox6DFloatVecType  ;
00384     FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg3OfVox6DDoubleVecType ;
00385     FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ::Pointer   m_FiniteDifferenceFunctionImg3OfVox8DFloatVecType  ;
00386     FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ::Pointer   m_FiniteDifferenceFunctionImg3OfVox8DDoubleVecType ;
00387 
00388     PDEDeformableRegFunction3DF3DF3DFVType           ::Pointer   m_PDEDeformableRegFunction3DF3DF3DFVType           ;
00390 
00391   private:
00392     ML_CLASS_HEADER(MultiBaseType);
00393   };
00394 
00395 
00396   //----------------------------------------------------------
00397   // Termination criterion must be set correctly in Base classes
00398   // by specifying class name == super class name as 3rd macro parameter!
00399   // Otherwise checks for inheritance and base classes will not terminate!
00400   //----------------------------------------------------------
00401   //                                  Type to be wrapped            | Pointer to wrapped type                | Class name of Base wrapper           | Superclass wrapped type       | dll-Export macro
00402   ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(MultiBaseType,                  MultiBaseType*,                          MultiBaseTypeWrapper,                  MultiBaseType,                  MLITK_SUPPORT_EXPORT)
00403 
00404 ML_END_NAMESPACE
00405 
00406 #endif // __mlITKMultiBaseConnect_H