Medical Imaging Interaction Toolkit
2023.04.00
Medical Imaging Interaction Toolkit
mitkInstantiateAccessFunctions.h
Go to the documentation of this file.
1
/*============================================================================
2
3
The Medical Imaging Interaction Toolkit (MITK)
4
5
Copyright (c) German Cancer Research Center (DKFZ)
6
All rights reserved.
7
8
Use of this source code is governed by a 3-clause BSD license that can be
9
found in the LICENSE file.
10
11
============================================================================*/
12
13
#ifndef mitkInstantiateAccessFunctions_h
14
#define mitkInstantiateAccessFunctions_h
15
16
#include <itkCastImageFilter.h>
17
#include <
mitkConfig.h
>
18
#include <
mitkImageToItk.h
>
19
20
#include <boost/preprocessor/cat.hpp>
21
#include <boost/preprocessor/expand.hpp>
22
#include <boost/preprocessor/seq/for_each.hpp>
23
#include <boost/preprocessor/seq/for_each_product.hpp>
24
#include <boost/preprocessor/seq/to_tuple.hpp>
25
26
#ifndef DOXYGEN_SKIP
27
28
#define InstantiateAccessFunctionImpl(r, itkImgFunc, type) BOOST_PP_CAT(InstantiateAccessFunction_, itkImgFunc) type
29
30
// product is of the form (itkImgFunc)(short)(2)
31
#ifdef _MSC_VER
32
#define InstantiateAccessFunctionProductImpl(r, product) \
33
BOOST_PP_CAT(InstantiateAccessFunction_, BOOST_PP_SEQ_HEAD(product)) \
34
BOOST_PP_EXPAND(BOOST_PP_SEQ_TO_TUPLE(BOOST_PP_SEQ_TAIL(product)))
35
#else
36
#define InstantiateAccessFunctionProductImpl(r, product) \
37
BOOST_PP_EXPAND(BOOST_PP_CAT(InstantiateAccessFunction_, BOOST_PP_SEQ_HEAD(product)) \
38
BOOST_PP_SEQ_TO_TUPLE(BOOST_PP_SEQ_TAIL(product)))
39
#endif
40
41
#endif // DOXYGEN_SKIP
42
43
//--------------------------------- instantiation functions ------------------------------
44
85
#define InstantiateAccessFunctionForFixedType(itkImgFunc, pixelTypeSeq, dimSeq) \
86
BOOST_PP_SEQ_FOR_EACH_PRODUCT(InstantiateAccessFunctionProductImpl, ((itkImgFunc))(pixelTypeSeq)(dimSeq))
87
95
#define InstantiateAccessFunction(itkImgFunc) \
96
InstantiateAccessFunctionForFixedType(itkImgFunc, MITK_ACCESSBYITK_PIXEL_TYPES_SEQ, MITK_ACCESSBYITK_DIMENSIONS_SEQ)
97
108
#define InstantiateAccessFunctionForFixedDimension(itkImgFunc, dim) \
109
InstantiateAccessFunctionForFixedType(itkImgFunc, MITK_ACCESSBYITK_PIXEL_TYPES_SEQ, (dim))
110
121
#define InstantiateAccessFunctionForFixedPixelType(itkImgFunc, pixelTypeSeq) \
122
InstantiateAccessFunctionForFixedType(itkImgFunc, pixelTypeSeq, MITK_ACCESSBYITK_DIMENSIONS_SEQ)
123
133
#define InstantiateAccessFunctionForIntegralPixelTypes(itkImgFunc) \
134
InstantiateAccessFunctionForFixedType( \
135
itkImgFunc, MITK_ACCESSBYITK_INTEGRAL_PIXEL_TYPES_SEQ, MITK_ACCESSBYITK_DIMENSIONS_SEQ)
136
146
#define InstantiateAccessFunctionForFloatingPixelTypes(itkImgFunc) \
147
InstantiateAccessFunctionForFixedType( \
148
itkImgFunc, MITK_ACCESSBYITK_FLOATING_PIXEL_TYPES_SEQ, MITK_ACCESSBYITK_DIMENSIONS_SEQ)
149
150
#endif
mitkImageToItk.h
mitkConfig.h
src
MITK
Modules
Core
include
mitkInstantiateAccessFunctions.h
Generated on Wed May 17 2023 16:26:08 for Medical Imaging Interaction Toolkit by
1.8.17