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
39class VTKFILTERSGENERAL_EXPORT vtkTableFFT : public vtkTableAlgorithm
40{
41public:
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
146protected:
148 ~vtkTableFFT() override;
149
151 vtkInformationVector* outputVector) override;
152
158 void Initialize(vtkTable* input);
159
164
165private:
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:159
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Hold a reference to a vtkObjectBase instance.
Superclass for algorithms that produce only vtkTables as output.
FFT for table columns.
Definition: vtkTableFFT.h:40
virtual void SetWindowingFunction(int)
~vtkTableFFT() override
virtual void SetBlockSize(int)
static vtkTableFFT * New()
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:172
int vtkIdType
Definition: vtkType.h:332