MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00005 00010 //---------------------------------------------------------------------------------- 00011 00012 #ifndef __mlITKCommonWrappers_H 00013 #define __mlITKCommonWrappers_H 00014 00015 #include "mlITKMLBaseWrapper.h" 00016 #include <itkPointSet.h> 00017 #include <itkPointSetToImageMetric.h> 00018 #include <itkImageToImageMetric.h> 00019 #include <itkTransform.h> 00020 #include <itkVector.h> 00021 #include <itkFiniteDifferenceFunction.h> 00022 #include <itkInterpolateImageFunction.h> 00023 #include <itkVectorInterpolateImageFunction.h> 00024 #include <itkCostFunction.h> 00025 #include <itkSingleValuedCostFunction.h> 00026 #include <itkMultipleValuedCostFunction.h> 00027 00028 00029 00031 typedef itk::CostFunction CostFunctionType; 00032 00034 typedef itk::SingleValuedCostFunction SingleValuedCostFunctionType; 00035 00037 typedef itk::MultipleValuedCostFunction MultipleValuedCostFunctionType; 00038 00039 00041 typedef itk::Image<float,3> MetricImage3DType; 00042 00044 typedef itk::Image<float,2> MetricImage2DType; 00045 00046 00048 typedef itk::Vector<float,3> MetricVector3DType; 00049 00051 typedef itk::Image<MetricVector3DType,3> MetricVectorImage3DType; 00052 00053 00055 typedef itk::Vector<float,2> MetricVector2DType; 00056 00058 typedef itk::Image<MetricVector2DType,2> MetricVectorImage2DType; 00059 00060 00062 typedef itk::PointSet<double,3> MetricPointSet3DType; 00063 00065 typedef itk::PointSetToImageMetric<MetricPointSet3DType, MetricImage3DType> PointSetToImageMetric3DType; 00066 00067 00069 typedef itk::ImageToImageMetric<MetricImage3DType, MetricImage3DType> ImageToImageMetric3DType; 00070 00072 typedef itk::ImageToImageMetric<MetricImage2DType, MetricImage2DType> ImageToImageMetric2DType; 00073 00074 00076 typedef itk::Transform<double,3,3> Transform3DType; // Transforms should be double 00077 00079 typedef itk::Transform<double,2,2> Transform2DType; // Transforms should be double 00080 00081 00083 typedef itk::FiniteDifferenceFunction<MetricImage3DType> FiniteDifferenceFunction3DType; 00084 00086 typedef itk::FiniteDifferenceFunction<MetricImage2DType> FiniteDifferenceFunction2DType; 00087 00088 00090 typedef itk::InterpolateImageFunction<MetricImage3DType,double> ImageInterpolator3DType; 00091 00093 typedef itk::InterpolateImageFunction<MetricImage2DType,double> ImageInterpolator2DType; 00094 00095 00097 typedef itk::VectorInterpolateImageFunction<MetricVectorImage3DType,double> VectorImageInterpolator3DType; 00098 00100 typedef itk::VectorInterpolateImageFunction<MetricVectorImage2DType,double> VectorImageInterpolator2DType; 00101 00102 00103 ML_START_NAMESPACE 00104 00105 // Termination criterion must be set correctly in Base classes 00106 // by specifying class name == super class name as 3rd macro parameter! 00107 // Otherwise checks for inheritance and base classes will not terminate! 00108 00109 // Type to be wrapped | Pointer to wrapped type | Class name of Base wrapper | Superclass wrapped type | dll-Export macro 00110 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(CostFunctionType, CostFunctionType::Pointer, CostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT) 00111 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(SingleValuedCostFunctionType, SingleValuedCostFunctionType::Pointer, SingleValuedCostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT) 00112 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(MultipleValuedCostFunctionType, MultipleValuedCostFunctionType::Pointer, MultipleValuedCostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT) 00113 00114 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(Transform3DType, Transform3DType::Pointer, Transform3DTypeWrapper, Transform3DType, MLITK_SUPPORT_EXPORT) 00115 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(Transform2DType, Transform2DType::Pointer, Transform2DTypeWrapper, Transform2DType, MLITK_SUPPORT_EXPORT) 00116 00117 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(PointSetToImageMetric3DType, PointSetToImageMetric3DType::Pointer, PointSetToImageMetric3DTypeWrapper, PointSetToImageMetric3DType, MLITK_SUPPORT_EXPORT) 00118 00119 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageToImageMetric3DType, ImageToImageMetric3DType::Pointer, ImageToImageMetric3DTypeWrapper, ImageToImageMetric3DType, MLITK_SUPPORT_EXPORT) 00120 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageToImageMetric2DType, ImageToImageMetric2DType::Pointer, ImageToImageMetric2DTypeWrapper, ImageToImageMetric2DType, MLITK_SUPPORT_EXPORT) 00121 00122 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(FiniteDifferenceFunction3DType, FiniteDifferenceFunction3DType::Pointer, FiniteDifferenceFunction3DTypeWrapper, FiniteDifferenceFunction3DType, MLITK_SUPPORT_EXPORT) 00123 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(FiniteDifferenceFunction2DType, FiniteDifferenceFunction2DType::Pointer, FiniteDifferenceFunction2DTypeWrapper, FiniteDifferenceFunction2DType, MLITK_SUPPORT_EXPORT) 00124 00125 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageInterpolator3DType, ImageInterpolator3DType::Pointer, ImageInterpolator3DTypeWrapper, ImageInterpolator3DType, MLITK_SUPPORT_EXPORT) 00126 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageInterpolator2DType, ImageInterpolator2DType::Pointer, ImageInterpolator2DTypeWrapper, ImageInterpolator2DType, MLITK_SUPPORT_EXPORT) 00127 00128 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(VectorImageInterpolator3DType, VectorImageInterpolator3DType::Pointer, VectorImageInterpolator3DTypeWrapper, VectorImageInterpolator3DType, MLITK_SUPPORT_EXPORT) 00129 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(VectorImageInterpolator2DType, VectorImageInterpolator2DType::Pointer, VectorImageInterpolator2DTypeWrapper, VectorImageInterpolator2DType, MLITK_SUPPORT_EXPORT) 00130 00131 00132 00134 MLITK_SUPPORT_EXPORT int ITKCommonTypesAndWrappersInit(); 00135 00136 ML_END_NAMESPACE 00137 00138 #endif