VTK  9.0.1
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 =========================================================================*/
35 #ifndef vtkExtractTimeSteps_h
36 #define vtkExtractTimeSteps_h
37 
38 #include "vtkFiltersExtractionModule.h" // for export macro
40 
41 #include <set> // for time step indices
42 
43 class VTKFILTERSEXTRACTION_EXPORT vtkExtractTimeSteps : public vtkPassInputTypeAlgorithm
44 {
45 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
49  static vtkExtractTimeSteps* New();
50 
54  int GetNumberOfTimeSteps() const { return static_cast<int>(this->TimeStepIndices.size()); }
55 
59  void AddTimeStepIndex(int timeStepIndex);
60 
62 
66  void SetTimeStepIndices(int count, const int* timeStepIndices);
67  void GetTimeStepIndices(int* timeStepIndices) const;
69 
73  void GenerateTimeStepIndices(int begin, int end, int step);
74 
76 
80  {
81  this->TimeStepIndices.clear();
82  this->Modified();
83  }
85 
87 
91  vtkGetMacro(UseRange, bool);
92  vtkSetMacro(UseRange, bool);
93  vtkBooleanMacro(UseRange, bool);
95 
97 
100  vtkGetVector2Macro(Range, int);
101  vtkSetVector2Macro(Range, int);
103 
105 
109  vtkGetMacro(TimeStepInterval, int);
110  vtkSetClampMacro(TimeStepInterval, int, 1, VTK_INT_MAX);
112 
113  // What timestep to provide when the requested time is between the timesteps
114  // the filter is set to extract
115  enum
116  {
117  PREVIOUS_TIMESTEP, // floor the time to the previous timestep
118  NEXT_TIMESTEP, // ceiling the time to the next timestep
119  NEAREST_TIMESTEP // take the timestep whose absolute difference from the requested time is
120  // smallest
121  } EstimationMode;
123 
128  vtkGetMacro(TimeEstimationMode, int);
129  vtkSetMacro(TimeEstimationMode, int);
130  void SetTimeEstimationModeToPrevious() { this->SetTimeEstimationMode(PREVIOUS_TIMESTEP); }
131  void SetTimeEstimationModeToNext() { this->SetTimeEstimationMode(NEXT_TIMESTEP); }
132  void SetTimeEstimationModeToNearest() { this->SetTimeEstimationMode(NEAREST_TIMESTEP); }
134 
135 protected:
137  ~vtkExtractTimeSteps() override {}
138 
142 
143  std::set<int> TimeStepIndices;
144  bool UseRange;
145  int Range[2];
148 
149 private:
150  vtkExtractTimeSteps(const vtkExtractTimeSteps&) = delete;
151  void operator=(const vtkExtractTimeSteps&) = delete;
152 };
153 
154 #endif // vtkExtractTimeSteps_h
vtk::Range
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
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:155
vtkExtractTimeSteps::NEXT_TIMESTEP
@ NEXT_TIMESTEP
Definition: vtkExtractTimeSteps.h:118
vtkExtractTimeSteps
extract specific time-steps from dataset
Definition: vtkExtractTimeSteps.h:43
vtkPassInputTypeAlgorithm.h
vtkExtractTimeSteps::SetTimeEstimationModeToNext
void SetTimeEstimationModeToNext()
Definition: vtkExtractTimeSteps.h:131
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:35
vtkExtractTimeSteps::~vtkExtractTimeSteps
~vtkExtractTimeSteps() override
Definition: vtkExtractTimeSteps.h:137
vtkObject::Modified
virtual void Modified()
Update the modification time for this object.
vtkExtractTimeSteps::UseRange
bool UseRange
Definition: vtkExtractTimeSteps.h:144
vtkExtractTimeSteps::SetTimeEstimationModeToNearest
void SetTimeEstimationModeToNearest()
Definition: vtkExtractTimeSteps.h:132
vtkExtractTimeSteps::TimeStepInterval
int TimeStepInterval
Definition: vtkExtractTimeSteps.h:146
vtkPassInputTypeAlgorithm::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
Definition: vtkPassInputTypeAlgorithm.h:171
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkExtractTimeSteps::PREVIOUS_TIMESTEP
@ PREVIOUS_TIMESTEP
Definition: vtkExtractTimeSteps.h:117
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:73
vtkExtractTimeSteps::TimeStepIndices
std::set< int > TimeStepIndices
Definition: vtkExtractTimeSteps.h:143
vtkPassInputTypeAlgorithm::New
static vtkPassInputTypeAlgorithm * New()
vtkPassInputTypeAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkExtractTimeSteps::ClearTimeStepIndices
void ClearTimeStepIndices()
Clear the time step indices.
Definition: vtkExtractTimeSteps.h:79
vtkPassInputTypeAlgorithm::RequestUpdateExtent
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
Definition: vtkPassInputTypeAlgorithm.h:147
vtkPassInputTypeAlgorithm::RequestInformation
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks for Information.
Definition: vtkPassInputTypeAlgorithm.h:124
vtkExtractTimeSteps::SetTimeEstimationModeToPrevious
void SetTimeEstimationModeToPrevious()
Definition: vtkExtractTimeSteps.h:130
vtkPassInputTypeAlgorithm
Superclass for algorithms that produce output of the same type as input.
Definition: vtkPassInputTypeAlgorithm.h:51
vtkExtractTimeSteps::GetNumberOfTimeSteps
int GetNumberOfTimeSteps() const
Get the number of time steps that will be extracted.
Definition: vtkExtractTimeSteps.h:54
vtkExtractTimeSteps::TimeEstimationMode
int TimeEstimationMode
Definition: vtkExtractTimeSteps.h:147