MeVisLabToolboxReference
FMEwork/ITK/Sources/ITK/MLITK/ITKSupport/mlITKCommonWrappers.h
Go to the documentation of this file.
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