From 10320a688d475c089ab19466919d17d02b64883a Mon Sep 17 00:00:00 2001 From: Tom Birdsong Date: Mon, 7 Mar 2022 11:59:51 -0500 Subject: [PATCH] ENH: Expose FFT factory image template parameters --- .../FFT/include/itkFFTImageFilterFactory.h | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/Modules/Filtering/FFT/include/itkFFTImageFilterFactory.h b/Modules/Filtering/FFT/include/itkFFTImageFilterFactory.h index 4ebb267242c..b9ccfcdc13c 100644 --- a/Modules/Filtering/FFT/include/itkFFTImageFilterFactory.h +++ b/Modules/Filtering/FFT/include/itkFFTImageFilterFactory.h @@ -45,12 +45,47 @@ struct FFTImageFilterTraits /** \class FFTImageFilterFactory * - * \brief Object Factory implementation for FFT filters + * \brief Object factory implementation for FFT filters + * + * ITK FFT filters are designed for overridable implementation + * through the global ITK object factory singleton. In order to + * instantiate a base FFT image filter object, at least one + * valid implementation must be registered in the object factory. + * + * FFTImageFilterFactory exists as an implementation detail + * designed to reduce overhead for FFT factory operations. + * A factory object templated over an FFT image filter + * implementation class will make constructor overrides + * for that class available through the global object factory + * singleton. + * + * FFTImageFilterFactory can be used for making an FFT implementation + * class available through object factory initialization if the class + * meets certain critera: + * - the FFT implementation class must be able to be templated over + * the pattern + * , TOutput + * - the FFT implementation class must have an associated + * `FFTImageFilterTraits` specialization defining pixel types + * and image dimensions for specialization + * + * `TInput` and `TOutput` must be classes implementing the `itk::Image` + * interface but need not inherit from `itk::Image`. For example, + * an FFT filter could define operations over an + * `itk::SpecialCoordinatesImage`. + * + * FFT filters not meeting these criteria may define an independent + * factory tailored to their particular instantiation requirements. + * + * \sa FFTImageFilterTraits + * \sa VnlFFTImageFilterInitFactory * * \ingroup FourierTransform * \ingroup ITKFFT */ -template