25 #ifndef vtkImageFourierFilter_h
26 #define vtkImageFourierFilter_h
29 #include "vtkImagingFourierModule.h"
43 #define vtkImageComplexEuclidSet(C, R, I) \
47 #define vtkImageComplexPolarSet(C, M, P) \
48 (C).Real = (M)*cos(P); \
51 #define vtkImageComplexPrint(C) \
52 printf("(%.3f, %.3f)", (C).Real, (C).Imag)
54 #define vtkImageComplexScale(cOut, S, cIn) \
55 (cOut).Real = (cIn).Real * (S); \
56 (cOut).Imag = (cIn).Imag * (S)
58 #define vtkImageComplexConjugate(cIn, cOut) \
59 (cOut).Imag = (cIn).Imag * -1.0; \
60 (cOut).Real = (cIn).Real
62 #define vtkImageComplexAdd(C1, C2, cOut) \
63 (cOut).Real = (C1).Real + (C2).Real; \
64 (cOut).Imag = (C1).Imag + (C2).Imag
66 #define vtkImageComplexSubtract(C1, C2, cOut) \
67 (cOut).Real = (C1).Real - (C2).Real; \
68 (cOut).Imag = (C1).Imag - (C2).Imag
70 #define vtkImageComplexMultiply(C1, C2, cOut) \
72 vtkImageComplex _vtkImageComplexMultiplyTemp; \
73 _vtkImageComplexMultiplyTemp.Real = (C1).Real*(C2).Real-(C1).Imag*(C2).Imag;\
74 _vtkImageComplexMultiplyTemp.Imag = (C1).Real*(C2).Imag+(C1).Imag*(C2).Real;\
75 cOut = _vtkImageComplexMultiplyTemp; \
79 #define vtkImageComplexExponential(cIn, cOut) \
81 double tmp = exp(cIn.Real); \
82 cOut.Real = tmp * cos(cIn.Imag); \
83 cOut.Imag = tmp * sin(cIn.Imag); \
116 int N,
int bsize,
int fb);
118 int N,
int bsize,
int n,
int fb);
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
Superclass that implements complex numbers.
Filters that execute axes in series.