VTK  9.7.1
vtkTemporalShiftScale.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
24 #ifndef vtkTemporalShiftScale_h
25 #define vtkTemporalShiftScale_h
26 
27 #include "vtkAlgorithm.h"
28 #include "vtkFiltersHybridModule.h" // For export macro
29 
30 #include <map> // for std::map
31 
32 VTK_ABI_NAMESPACE_BEGIN
33 class VTKFILTERSHYBRID_EXPORT vtkTemporalShiftScale : public vtkAlgorithm
34 {
35 public:
36  static vtkTemporalShiftScale* New();
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
46  vtkSetMacro(PreShift, double);
47  vtkGetMacro(PreShift, double);
49 
51 
54  vtkSetMacro(PostShift, double);
55  vtkGetMacro(PostShift, double);
57 
59 
62  vtkSetMacro(Scale, double);
63  vtkGetMacro(Scale, double);
65 
67 
80  vtkSetMacro(Periodic, vtkTypeBool);
81  vtkGetMacro(Periodic, vtkTypeBool);
82  vtkBooleanMacro(Periodic, vtkTypeBool);
84 
86 
95  vtkSetMacro(PeriodicEndCorrection, vtkTypeBool);
96  vtkGetMacro(PeriodicEndCorrection, vtkTypeBool);
97  vtkBooleanMacro(PeriodicEndCorrection, vtkTypeBool);
99 
101 
106  vtkSetMacro(MaximumNumberOfPeriods, double);
107  vtkGetMacro(MaximumNumberOfPeriods, double);
109 
110 protected:
112  ~vtkTemporalShiftScale() override;
113 
114  double PreShift;
115  double PostShift;
116  double Scale;
120  //
121  double InRange[2];
122  double OutRange[2];
123  double PeriodicRange[2];
126 
131  vtkInformationVector* outputVector) override;
132 
133  virtual int RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
134 
135  int FillInputPortInformation(int port, vtkInformation* info) override;
136  int FillOutputPortInformation(int vtkNotUsed(port), vtkInformation* info) override;
137 
138  virtual int RequestDataObject(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
139 
140  virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
141 
142  virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
143 
144  double ForwardConvert(double T0);
145  double BackwardConvert(double T1);
146 
147 private:
149  void operator=(const vtkTemporalShiftScale&) = delete;
150 
151  std::map<double, double> OutputToInputTimes;
152 };
153 
154 VTK_ABI_NAMESPACE_END
155 #endif
Store vtkAlgorithm input/output information.
modify the time range/steps of temporal data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int vtkTypeBool
Definition: vtkABI.h:64
virtual vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:53
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
static vtkAlgorithm * New()