VTK  9.1.0
vtkTableFFT.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkTableFFT.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 
17 /*-------------------------------------------------------------------------
18  Copyright 2009 Sandia Corporation.
19  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
20  the U.S. Government retains certain rights in this software.
21 -------------------------------------------------------------------------*/
22 
32 #ifndef vtkTableFFT_h
33 #define vtkTableFFT_h
34 
35 #include "vtkFiltersGeneralModule.h" // For export macro
36 #include "vtkSmartPointer.h" // For internal method.
37 #include "vtkTableAlgorithm.h"
38 
39 class VTKFILTERSGENERAL_EXPORT vtkTableFFT : public vtkTableAlgorithm
40 {
41 public:
43  static vtkTableFFT* New();
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
46  enum // Windowing functions
47  {
48  HANNING = 0,
53 
54  MAX_WINDOWING_FUNCTION
55  };
56 
58 
63  vtkGetMacro(Normalize, bool);
64  vtkSetMacro(Normalize, bool);
65  vtkBooleanMacro(Normalize, bool);
67 
69 
75  vtkGetMacro(AverageFft, bool);
76  virtual void SetAverageFft(bool);
77  vtkBooleanMacro(AverageFft, bool);
79 
81 
87  vtkGetMacro(OptimizeForRealInput, bool);
88  vtkSetMacro(OptimizeForRealInput, bool);
89  vtkBooleanMacro(OptimizeForRealInput, bool);
91 
93 
99  vtkGetMacro(CreateFrequencyColumn, bool);
100  vtkSetMacro(CreateFrequencyColumn, bool);
101  vtkBooleanMacro(CreateFrequencyColumn, bool);
103 
105 
117  vtkGetMacro(NumberOfBlock, int);
118  vtkSetMacro(NumberOfBlock, int);
120 
122 
130  vtkGetMacro(BlockSize, int);
131  virtual void SetBlockSize(int);
133 
135 
142  vtkGetMacro(WindowingFunction, int);
143  virtual void SetWindowingFunction(int);
145 
146 protected:
148  ~vtkTableFFT() override;
149 
150  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
151  vtkInformationVector* outputVector) override;
152 
158  void Initialize(vtkTable* input);
159 
164 
165 private:
166  vtkTableFFT(const vtkTableFFT&) = delete;
167  void operator=(const vtkTableFFT&) = delete;
168 
169  bool Normalize = false;
170  bool AverageFft = false;
171  bool OptimizeForRealInput = false;
172  bool CreateFrequencyColumn = false;
173  int NumberOfBlock = 2;
174  vtkIdType BlockSize = 1024;
175  int WindowingFunction = RECTANGULAR;
176 
177  struct vtkInternal;
178  vtkInternal* Internals;
179 };
180 
181 #endif // vtkTableFFT_h
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:50
a simple class to control print indentation
Definition: vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only vtkTables as output.
FFT for table columns.
Definition: vtkTableFFT.h:40
static vtkTableFFT * New()
virtual void SetWindowingFunction(int)
~vtkTableFFT() override
virtual void SetBlockSize(int)
virtual void SetAverageFft(bool)
vtkSmartPointer< vtkDataArray > DoFFT(vtkDataArray *input)
Perform the FFT on the given data array.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Initialize(vtkTable *input)
Initialize the internal state before performing the actual fft.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:63
int vtkIdType
Definition: vtkType.h:332