MeVisLabToolboxReference
|
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