MeVisLab Toolbox Reference
mlITKCommonWrappers.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #pragma once
14 
15 #include "mlITKMLBaseWrapper.h"
16 #include <itkPointSet.h>
17 #include <itkPointSetToImageMetric.h>
18 #include <itkImageToImageMetric.h>
19 #include <itkTransform.h>
20 #include <itkVector.h>
21 #include <itkFiniteDifferenceFunction.h>
22 #include <itkInterpolateImageFunction.h>
23 #include <itkVectorInterpolateImageFunction.h>
24 #include <itkCostFunction.h>
25 #include <itkSingleValuedCostFunction.h>
26 #include <itkMultipleValuedCostFunction.h>
27 
29 typedef itk::CostFunction CostFunctionType;
30 
32 typedef itk::SingleValuedCostFunction SingleValuedCostFunctionType;
33 
35 typedef itk::MultipleValuedCostFunction MultipleValuedCostFunctionType;
36 
37 
39 typedef itk::Image<float,3> MetricImage3DType;
40 
42 typedef itk::Image<float,2> MetricImage2DType;
43 
44 
46 typedef itk::Vector<float,3> MetricVector3DType;
47 
49 typedef itk::Image<MetricVector3DType,3> MetricVectorImage3DType;
50 
51 
53 typedef itk::Vector<float,2> MetricVector2DType;
54 
56 typedef itk::Image<MetricVector2DType,2> MetricVectorImage2DType;
57 
58 
60 typedef itk::PointSet<double,3> MetricPointSet3DType;
61 
63 typedef itk::PointSetToImageMetric<MetricPointSet3DType, MetricImage3DType> PointSetToImageMetric3DType;
64 
65 
67 typedef itk::ImageToImageMetric<MetricImage3DType, MetricImage3DType> ImageToImageMetric3DType;
68 
70 typedef itk::ImageToImageMetric<MetricImage2DType, MetricImage2DType> ImageToImageMetric2DType;
71 
72 
74 typedef itk::Transform<double,3,3> Transform3DType; // Transforms should be double
75 
77 typedef itk::Transform<double,2,2> Transform2DType; // Transforms should be double
78 
79 
81 typedef itk::FiniteDifferenceFunction<MetricImage3DType> FiniteDifferenceFunction3DType;
82 
84 typedef itk::FiniteDifferenceFunction<MetricImage2DType> FiniteDifferenceFunction2DType;
85 
86 
88 typedef itk::InterpolateImageFunction<MetricImage3DType,double> ImageInterpolator3DType;
89 
91 typedef itk::InterpolateImageFunction<MetricImage2DType,double> ImageInterpolator2DType;
92 
93 
95 typedef itk::VectorInterpolateImageFunction<MetricVectorImage3DType,double> VectorImageInterpolator3DType;
96 
98 typedef itk::VectorInterpolateImageFunction<MetricVectorImage2DType,double> VectorImageInterpolator2DType;
99 
100 
101 ML_START_NAMESPACE
102 
103 // Termination criterion must be set correctly in Base classes
104 // by specifying class name == super class name as 3rd macro parameter!
105 // Otherwise checks for inheritance and base classes will not terminate!
106 
107 // Type to be wrapped | Pointer to wrapped type | Class name of Base wrapper | Superclass wrapped type | dll-Export macro
108 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(CostFunctionType, CostFunctionType::Pointer, CostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT)
109 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(SingleValuedCostFunctionType, SingleValuedCostFunctionType::Pointer, SingleValuedCostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT)
110 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(MultipleValuedCostFunctionType, MultipleValuedCostFunctionType::Pointer, MultipleValuedCostFunctionTypeWrapper, CostFunctionType, MLITK_SUPPORT_EXPORT)
111 
112 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(Transform3DType, Transform3DType::Pointer, Transform3DTypeWrapper, Transform3DType, MLITK_SUPPORT_EXPORT)
113 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(Transform2DType, Transform2DType::Pointer, Transform2DTypeWrapper, Transform2DType, MLITK_SUPPORT_EXPORT)
114 
115 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(PointSetToImageMetric3DType, PointSetToImageMetric3DType::Pointer, PointSetToImageMetric3DTypeWrapper, PointSetToImageMetric3DType, MLITK_SUPPORT_EXPORT)
116 
117 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageToImageMetric3DType, ImageToImageMetric3DType::Pointer, ImageToImageMetric3DTypeWrapper, ImageToImageMetric3DType, MLITK_SUPPORT_EXPORT)
118 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageToImageMetric2DType, ImageToImageMetric2DType::Pointer, ImageToImageMetric2DTypeWrapper, ImageToImageMetric2DType, MLITK_SUPPORT_EXPORT)
119 
120 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(FiniteDifferenceFunction3DType, FiniteDifferenceFunction3DType::Pointer, FiniteDifferenceFunction3DTypeWrapper, FiniteDifferenceFunction3DType, MLITK_SUPPORT_EXPORT)
121 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(FiniteDifferenceFunction2DType, FiniteDifferenceFunction2DType::Pointer, FiniteDifferenceFunction2DTypeWrapper, FiniteDifferenceFunction2DType, MLITK_SUPPORT_EXPORT)
122 
123 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageInterpolator3DType, ImageInterpolator3DType::Pointer, ImageInterpolator3DTypeWrapper, ImageInterpolator3DType, MLITK_SUPPORT_EXPORT)
124 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(ImageInterpolator2DType, ImageInterpolator2DType::Pointer, ImageInterpolator2DTypeWrapper, ImageInterpolator2DType, MLITK_SUPPORT_EXPORT)
125 
126 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(VectorImageInterpolator3DType, VectorImageInterpolator3DType::Pointer, VectorImageInterpolator3DTypeWrapper, VectorImageInterpolator3DType, MLITK_SUPPORT_EXPORT)
127 ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(VectorImageInterpolator2DType, VectorImageInterpolator2DType::Pointer, VectorImageInterpolator2DTypeWrapper, VectorImageInterpolator2DType, MLITK_SUPPORT_EXPORT)
128 
129 
132 
133 ML_END_NAMESPACE
itk::Image< float, 2 > MetricImage2DType
Standard 2D itk image type used to be passed by wrappers.
itk::Transform< double, 2, 2 > Transform2DType
Standard 2D itk transform type used to be passed by wrappers.
itk::Image< MetricVector2DType, 2 > MetricVectorImage2DType
Standard 2D itk vector image type used to be passed by wrappers.
itk::VectorInterpolateImageFunction< MetricVectorImage2DType, double > VectorImageInterpolator2DType
Standard 2D itk interpolator function for vector type used to be passed by wrappers.
itk::FiniteDifferenceFunction< MetricImage2DType > FiniteDifferenceFunction2DType
Standard 2D itk finite difference function type used to be passed by wrappers.
itk::PointSetToImageMetric< MetricPointSet3DType, MetricImage3DType > PointSetToImageMetric3DType
Standard itk image metric type used to be passed by wrappers.
itk::Transform< double, 3, 3 > Transform3DType
Standard 3D itk transform type used to be passed by wrappers.
itk::Image< float, 3 > MetricImage3DType
Standard 3D itk image type used to be passed by wrappers.
itk::CostFunction CostFunctionType
Basic CostFunction type.
itk::FiniteDifferenceFunction< MetricImage3DType > FiniteDifferenceFunction3DType
Standard 3D itk finite difference function type used to be passed by wrappers.
itk::VectorInterpolateImageFunction< MetricVectorImage3DType, double > VectorImageInterpolator3DType
Standard 3D itk interpolator function for vector type used to be passed by wrappers.
itk::InterpolateImageFunction< MetricImage3DType, double > ImageInterpolator3DType
Standard 3D itk interpolator function type used to be passed by wrappers.
itk::PointSet< double, 3 > MetricPointSet3DType
Standard 3D itk point set type used to be passed by wrappers.
itk::ImageToImageMetric< MetricImage2DType, MetricImage2DType > ImageToImageMetric2DType
Standard itk image metric type used to be passed by wrappers.
itk::Vector< float, 2 > MetricVector2DType
Standard 2D vector image type used to be passed by wrappers.
itk::InterpolateImageFunction< MetricImage2DType, double > ImageInterpolator2DType
Standard 2D itk interpolator function type used to be passed by wrappers.
itk::ImageToImageMetric< MetricImage3DType, MetricImage3DType > ImageToImageMetric3DType
Standard itk image metric type used to be passed by wrappers.
itk::Image< MetricVector3DType, 3 > MetricVectorImage3DType
Standard 3D itk vector image type used to be passed by wrappers.
itk::MultipleValuedCostFunction MultipleValuedCostFunctionType
Basic MultipleValuedCostFunction type.
itk::Vector< float, 3 > MetricVector3DType
Standard 3D vector image type used to be passed by wrappers.
itk::SingleValuedCostFunction SingleValuedCostFunctionType
Basic SingleValuedCostFunction type.
#define ML_CREATE_BASE_WRAPPER_FOR_OBJECT_H(CLASS_NAME, CLASS_NAME_POINTER, WRAPPER_CLASS_NAME, PARENT_CLASS_NAME, ML_EXPORT_MACRO)
Macro to create a wrapper class for an object.
#define MLITK_SUPPORT_EXPORT
When included by other libraries MLITK_SUPPORT_EXPORT is compiled as import symbol.
MLITK_SUPPORT_EXPORT int ITKCommonTypesAndWrappersInit()
Initializes the wrapper classes.