VTK  9.4.20241226
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
31VTK_ABI_NAMESPACE_BEGIN
32class VTKFILTERSGENERAL_EXPORT vtkSpatioTemporalHarmonicsAttribute : public vtkDataSetAlgorithm
33{
34public:
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
49
54
58 double ComputeValue(double coords[3], double time);
59
60protected:
63
65
66private:
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
78VTK_ABI_NAMESPACE_END
79#endif
Superclass for algorithms that produce output of the same type as input.
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Computes spatio-temporal harmonics on each point.
double ComputeValue(double coords[3], double time)
Compute spatio-temporal harmonic using filter-defined harmonics.
void ClearHarmonics()
Clear all harmonics.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkSpatioTemporalHarmonicsAttribute * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void AddHarmonic(double amplitude, double temporalFrequency, double xWaveVector, double yWaveVector, double zWaveVector, double phase)
Add an harmonic with all needed parameters.
bool HasHarmonics()
Whether the filter has harmonics set, or is empty.
~vtkSpatioTemporalHarmonicsAttribute() override=default