VTK  9.7.1
vtkSpatioTemporalHarmonicsAttribute.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
22 #ifndef vtkSpatioTemporalHarmonicsAttribute_h
23 #define vtkSpatioTemporalHarmonicsAttribute_h
24 
25 #include "vtkDataSetAlgorithm.h"
26 #include "vtkFiltersGeneralModule.h" // For export macro
27 
28 #include <array>
29 #include <vector>
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class VTKFILTERSGENERAL_EXPORT vtkSpatioTemporalHarmonicsAttribute : public vtkDataSetAlgorithm
33 {
34 public:
37  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
42  void AddHarmonic(double amplitude, double temporalFrequency, double xWaveVector,
43  double yWaveVector, double zWaveVector, double phase);
44 
48  void ClearHarmonics();
49 
53  bool HasHarmonics();
54 
58  double ComputeValue(double coords[3], double time);
59 
60 protected:
62  ~vtkSpatioTemporalHarmonicsAttribute() override = default;
63 
65 
66 private:
68  void operator=(const vtkSpatioTemporalHarmonicsAttribute&) = delete;
69 
70  using Vector = std::array<double, 3>;
71 
72  std::vector<double> Amplitudes;
73  std::vector<double> TemporalFrequencies;
74  std::vector<Vector> WaveVectors;
75  std::vector<double> Phases;
76 };
77 
78 VTK_ABI_NAMESPACE_END
79 #endif
Store vtkAlgorithm input/output information.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
Computes spatio-temporal harmonics on each point.
Store zero or more vtkInformation instances.
Superclass for algorithms that produce output of the same type as input.
static vtkDataSetAlgorithm * New()