13 #ifndef vtkImageFourierFilter_h
14 #define vtkImageFourierFilter_h
17 #include "vtkImagingFourierModule.h"
24 VTK_ABI_NAMESPACE_BEGIN
32 #define vtkImageComplexEuclidSet(C, R, I) \
39 #define vtkImageComplexPolarSet(C, M, P) \
42 (C).Real = (M) * cos(P); \
43 (C).Imag = (M) * sin(P); \
46 #define vtkImageComplexPrint(C) \
49 vtk::print("({:.3f}, {:.3f})", (C).Real, (C).Imag); \
52 #define vtkImageComplexScale(cOut, S, cIn) \
55 (cOut).Real = (cIn).Real * (S); \
56 (cOut).Imag = (cIn).Imag * (S); \
59 #define vtkImageComplexConjugate(cIn, cOut) \
62 (cOut).Imag = (cIn).Imag * -1.0; \
63 (cOut).Real = (cIn).Real; \
66 #define vtkImageComplexAdd(C1, C2, cOut) \
69 (cOut).Real = (C1).Real + (C2).Real; \
70 (cOut).Imag = (C1).Imag + (C2).Imag; \
73 #define vtkImageComplexSubtract(C1, C2, cOut) \
76 (cOut).Real = (C1).Real - (C2).Real; \
77 (cOut).Imag = (C1).Imag - (C2).Imag; \
80 #define vtkImageComplexMultiply(C1, C2, cOut) \
83 vtkImageComplex vtkImageComplex_tMultiplyTemp; \
84 vtkImageComplex_tMultiplyTemp.Real = (C1).Real * (C2).Real - (C1).Imag * (C2).Imag; \
85 vtkImageComplex_tMultiplyTemp.Imag = (C1).Real * (C2).Imag + (C1).Imag * (C2).Real; \
86 cOut = vtkImageComplex_tMultiplyTemp; \
90 #define vtkImageComplexExponential(cIn, cOut) \
93 double tmp = exp(cIn.Real); \
94 cOut.Real = tmp * cos(cIn.Imag); \
95 cOut.Imag = tmp * sin(cIn.Imag); \
127 void ExecuteFftStepN(
142 VTK_ABI_NAMESPACE_END
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
void PrintSelf(ostream &os, vtkIndent indent) override
Construct an instance of vtkImageDecomposeFilter filter with default dimensionality 3...
a simple class to control print indentation
Superclass that implements complex numbers.
Filters that execute axes in series.