VTK  9.4.20241226
vtkTemporalSmoothing.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
14#ifndef vtkTemporalSmoothing_h
15#define vtkTemporalSmoothing_h
16
17#include "vtkFiltersTemporalModule.h" // For export macro
19
20#include <memory> // For smart pointers
21
22VTK_ABI_NAMESPACE_BEGIN
23struct vtkTemporalSmoothingInternals;
25class vtkFieldData;
26class vtkDataSet;
28class vtkInformation;
29class vtkGraph;
30
31class VTKFILTERSTEMPORAL_EXPORT vtkTemporalSmoothing : public vtkPassInputTypeAlgorithm
32{
33public:
35
40 void PrintSelf(ostream& os, vtkIndent indent) override;
42
44
49 vtkGetMacro(TemporalWindowHalfWidth, int);
50 vtkSetMacro(TemporalWindowHalfWidth, int);
52
53protected:
55 ~vtkTemporalSmoothing() override = default;
56
58 vtkInformationVector* outputVector) override;
60 vtkInformationVector* outputVector) override;
62 vtkInformationVector* outputVector) override;
63 int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
64 vtkInformationVector* outputVector) override;
65
66private:
68 void operator=(const vtkTemporalSmoothing&) = delete;
69
70 void Initialize(vtkDataObject* input, vtkDataObject* output, vtkDataObject* cache);
71 void Initialize(vtkDataSet* input, vtkDataSet* output, vtkDataSet* cache);
72 void Initialize(vtkGraph* input, vtkGraph* output, vtkGraph* cache);
73 void Initialize(
75 void InitializeArrays(vtkFieldData* inFd, vtkFieldData* outFd);
76 void InitializeArray(vtkDataArray* array, vtkFieldData* outFd);
77
78 void AccumulateSum(vtkDataObject* input, vtkDataObject* output);
79 void AccumulateSum(vtkDataSet* input, vtkDataSet* output);
80 void AccumulateSum(vtkGraph* input, vtkGraph* output);
81 void AccumulateSum(vtkCompositeDataSet* input, vtkCompositeDataSet* output);
82 void AccumulateArrays(vtkFieldData* inFd, vtkFieldData* outFd);
83
84 void PostExecute(vtkDataObject* input, vtkDataObject* output);
85 void PostExecute(vtkDataSet* input, vtkDataSet* output);
86 void PostExecute(vtkGraph* input, vtkGraph* output);
87 void PostExecute(vtkCompositeDataSet* input, vtkCompositeDataSet* output);
88 void FinishArrays(vtkFieldData* inFd, vtkFieldData* outFd);
89
90 int TemporalWindowHalfWidth = 10;
91 std::shared_ptr<vtkTemporalSmoothingInternals> Internals;
92};
93
94VTK_ABI_NAMESPACE_END
95#endif
abstract superclass for composite (multi-block or AMR) datasets
abstract superclass for arrays of numeric data
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
represent and manipulate fields of data
Base class for graph data types.
Definition vtkGraph.h:340
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce output of the same type as input.
Smooth point or cell data over a sliding time window.
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called within ProcessRequest when a request asks the algorithm to create empty output data ob...
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called within ProcessRequest when a request asks for Information.
int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkTemporalSmoothing * New()
Standard Type-Macro.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard Type-Macro.
~vtkTemporalSmoothing() override=default