SimpleITK  
sitkCastImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef sitkCastImageFilter_h
19#define sitkCastImageFilter_h
20
21#include "sitkImageFilter.h"
22#include "sitkPixelIDTokens.h"
24
25#include <memory>
26
27namespace itk::simple
28{
29
40{
41public:
43
45 void
49
50 ~CastImageFilter() override;
51
57
59 std::string
60 GetName() const override
61 {
62 return std::string("CastImageFilter");
63 }
64
65 // See super class for doxygen
66 std::string
67 ToString() const override;
68
69 // See super class for doxygen
70 Image
71 Execute(const Image &);
72
73private:
75
85 template <typename TImageType, typename TOutputImageType>
86 Image
87 ExecuteInternalCast(const Image & inImage);
88
89 template <typename TImageType, typename TOutputImageType>
90 Image
92
93 template <typename TImageType, typename TOutputImageType>
94 Image
95 ExecuteInternalToLabel(const Image & inImage);
96
97 template <typename TImageType, typename TOutputImageType>
98 Image
101
102// SWIG does not appear to process private classes correctly
103#ifndef SWIG
104
108 template <class TMemberFunctionPointer>
110 {
111 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
112
113 template <typename TImageType1, typename TImageType2>
114 constexpr TMemberFunctionPointer
116 {
117 return &ObjectType::template ExecuteInternalCast<TImageType1, TImageType2>;
118 }
119 };
120
124 template <class TMemberFunctionPointer>
126 {
127 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
128
129 template <typename TImageType1, typename TImageType2>
130 constexpr TMemberFunctionPointer
132 {
133 return &ObjectType::template ExecuteInternalToVector<TImageType1, TImageType2>;
134 }
135 };
136
140 template <class TMemberFunctionPointer>
142 {
143 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
144
145 template <typename TImageType1, typename TImageType2>
146 constexpr TMemberFunctionPointer
148 {
149 return &ObjectType::template ExecuteInternalToLabel<TImageType1, TImageType2>;
150 }
151 };
152
156 template <class TMemberFunctionPointer>
158 {
159 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
160
161 template <typename TImageType1, typename TImageType2>
162 constexpr TMemberFunctionPointer
164 {
166 }
167 };
168#endif
169
170 typedef Image (Self::*MemberFunctionType)(const Image &);
171
178 static void
180 static void
182 static void
184 static void
186 static void
188 static void
190 static void
193
194
197};
198
200Cast(const Image & image, PixelIDValueEnum pixelID);
201
202} // namespace itk::simple
203#endif
static void RegisterMemberFactory2l(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
Image ExecuteInternalToLabel(const Image &inImage)
std::string ToString() const override
PixelIDValueEnum GetOutputPixelType() const
Image ExecuteInternalLabelToImage(const Image &inImage)
Image Execute(const Image &)
std::string GetName() const override
Image(Self::* MemberFunctionType)(const Image &)
static void RegisterMemberFactory3(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
Image ExecuteInternalToVector(const Image &inImage)
static void RegisterMemberFactory3l(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
Image ExecuteInternalCast(const Image &inImage)
void SetOutputPixelType(PixelIDValueEnum pixelID)
static void RegisterMemberFactory4(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
static void RegisterMemberFactory3v(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
static const detail::DualMemberFunctionFactory< MemberFunctionType > & GetMemberFunctionFactory()
static void RegisterMemberFactory2(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
static void RegisterMemberFactory2v(detail::DualMemberFunctionFactory< MemberFunctionType > &factory)
The Image class for SimpleITK.
Definition sitkImage.h:77
A class used to instantiate and generate function objects of templated member functions with two temp...
PixelIDValueEnum
Enumerated values of pixelIDs.
Image Cast(const Image &image, PixelIDValueEnum pixelID)
#define SITKBasicFilters_EXPORT
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
constexpr TMemberFunctionPointer operator()() const
constexpr TMemberFunctionPointer operator()() const
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
constexpr TMemberFunctionPointer operator()() const
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
constexpr TMemberFunctionPointer operator()() const