@@ -93,46 +93,34 @@ class FFTImageFilterFactory : public itk::ObjectFactoryBase
93
93
* with distinct specialization.
94
94
* Requires TFFTImageFilter to have the template signature <InputImageType, OutputImageType>.
95
95
*/
96
- template <typename InputPixelType, typename OutputPixelType, size_t ImageDimension >
96
+ template <typename InputPixelType, typename OutputPixelType, unsigned int D, unsigned int ... ImageDimensions >
97
97
void
98
- OverrideFFTImageFilterType ()
98
+ OverrideFFTImageFilterType (const std::integer_sequence< unsigned int , D, ImageDimensions...> & )
99
99
{
100
- using InputImageType = Image<InputPixelType, ImageDimension >;
101
- using OutputImageType = Image<OutputPixelType, ImageDimension >;
100
+ using InputImageType = Image<InputPixelType, D >;
101
+ using OutputImageType = Image<OutputPixelType, D >;
102
102
this ->RegisterOverride (typeid (typename TFFTImageFilter<InputImageType, OutputImageType>::Superclass).name (),
103
103
typeid (TFFTImageFilter<InputImageType, OutputImageType>).name (),
104
104
" FFT Image Filter Override" ,
105
105
true ,
106
106
CreateObjectFunction<TFFTImageFilter<InputImageType, OutputImageType>>::New ());
107
+ OverrideFFTImageFilterType<InputPixelType, OutputPixelType>(
108
+ std::integer_sequence<unsigned int , ImageDimensions...>{});
107
109
}
110
+ template <typename InputPixelType, typename OutputPixelType>
111
+ void
112
+ OverrideFFTImageFilterType (const std::integer_sequence<unsigned int > &)
113
+ {}
108
114
109
115
FFTImageFilterFactory ()
110
116
{
111
117
OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<float >,
112
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<float >,
113
- 1 >();
114
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<float >,
115
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<float >,
116
- 2 >();
117
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<float >,
118
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<float >,
119
- 3 >();
120
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<float >,
121
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<float >,
122
- 4 >();
118
+ typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<float >>(
119
+ std::integer_sequence<unsigned int , 4 , 3 , 2 , 1 >{});
123
120
124
121
OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<double >,
125
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<double >,
126
- 1 >();
127
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<double >,
128
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<double >,
129
- 2 >();
130
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<double >,
131
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<double >,
132
- 3 >();
133
- OverrideFFTImageFilterType<typename FFTImageFilterTraits<TFFTImageFilter>::template InputPixelType<double >,
134
- typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<double >,
135
- 4 >();
122
+ typename FFTImageFilterTraits<TFFTImageFilter>::template OutputPixelType<double >>(
123
+ std::integer_sequence<unsigned int , 4 , 3 , 2 , 1 >{});
136
124
}
137
125
};
138
126
0 commit comments