VTK  9.2.6
vtkExtractTimeSteps.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExtractTimeSteps.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
38 #ifndef vtkExtractTimeSteps_h
39 #define vtkExtractTimeSteps_h
40 
41 #include "vtkFiltersExtractionModule.h" // for export macro
43 
44 #include <set> // for time step indices
45 
46 class VTKFILTERSEXTRACTION_EXPORT vtkExtractTimeSteps : public vtkPassInputTypeAlgorithm
47 {
48 public:
50  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
52  static vtkExtractTimeSteps* New();
53 
57  int GetNumberOfTimeSteps() const { return static_cast<int>(this->TimeStepIndices.size()); }
58 
62  void AddTimeStepIndex(int timeStepIndex);
63 
65 
69  void SetTimeStepIndices(int count, const int* timeStepIndices);
70  void GetTimeStepIndices(int* timeStepIndices) const;
72 
76  void GenerateTimeStepIndices(int begin, int end, int step);
77 
79 
83  {
84  this->TimeStepIndices.clear();
85  this->Modified();
86  }
88 
90 
94  vtkGetMacro(UseRange, bool);
95  vtkSetMacro(UseRange, bool);
96  vtkBooleanMacro(UseRange, bool);
98 
100 
103  vtkGetVector2Macro(Range, int);
104  vtkSetVector2Macro(Range, int);
106 
108 
112  vtkGetMacro(TimeStepInterval, int);
113  vtkSetClampMacro(TimeStepInterval, int, 1, VTK_INT_MAX);
115 
116  // What timestep to provide when the requested time is between the timesteps
117  // the filter is set to extract
118  enum
119  {
120  PREVIOUS_TIMESTEP, // floor the time to the previous timestep
121  NEXT_TIMESTEP, // ceiling the time to the next timestep
122  NEAREST_TIMESTEP // take the timestep whose absolute difference from the requested time is
123  // smallest
124  } EstimationMode;
126 
131  vtkGetMacro(TimeEstimationMode, int);
132  vtkSetMacro(TimeEstimationMode, int);
133  void SetTimeEstimationModeToPrevious() { this->SetTimeEstimationMode(PREVIOUS_TIMESTEP); }
134  void SetTimeEstimationModeToNext() { this->SetTimeEstimationMode(NEXT_TIMESTEP); }
135  void SetTimeEstimationModeToNearest() { this->SetTimeEstimationMode(NEAREST_TIMESTEP); }
137 
138 protected:
140  ~vtkExtractTimeSteps() override = default;
141 
145 
146  std::set<int> TimeStepIndices;
147  bool UseRange;
148  int Range[2];
151 
152 private:
153  vtkExtractTimeSteps(const vtkExtractTimeSteps&) = delete;
154  void operator=(const vtkExtractTimeSteps&) = delete;
155 };
156 
157 #endif // vtkExtractTimeSteps_h
extract specific time-steps from dataset
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks for Information.
Superclass for algorithms that produce output of the same type as input.
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:155
auto Range(IterablePtr iterable, Options &&...opts) -> typename detail::IterableTraits< typename detail::StripPointers< IterablePtr >::type >::RangeType
Generate an iterable STL proxy object for a VTK container.
Definition: vtkRange.h:85
void SetTimeEstimationModeToNext()
Get/Set what to do when the requested time is not one of the timesteps this filter is set to extract...
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
a simple class to control print indentation
Definition: vtkIndent.h:39
void SetTimeEstimationModeToNearest()
Get/Set what to do when the requested time is not one of the timesteps this filter is set to extract...
virtual void Modified()
Update the modification time for this object.
void SetTimeEstimationModeToPrevious()
Get/Set what to do when the requested time is not one of the timesteps this filter is set to extract...
int GetNumberOfTimeSteps() const
Get the number of time steps that will be extracted.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ClearTimeStepIndices()
Clear the time step indices.
Store zero or more vtkInformation instances.
std::set< int > TimeStepIndices
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkPassInputTypeAlgorithm * New()