VTK
vtkTemporalStatistics.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkTemporalStatistics.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 
17 /*
18  * Copyright 2008 Sandia Corporation.
19  * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
20  * license for use of this work by or on behalf of the
21  * U.S. Government. Redistribution and use in source and binary forms, with
22  * or without modification, are permitted provided that this Notice and any
23  * statement of authorship are reproduced on all copies.
24  */
25 
52 #ifndef vtkTemporalStatistics_h
53 #define vtkTemporalStatistics_h
54 
55 #include "vtkFiltersGeneralModule.h" // For export macro
57 
59 class vtkDataSet;
60 class vtkFieldData;
61 class vtkGraph;
62 
63 class VTKFILTERSGENERAL_EXPORT vtkTemporalStatistics : public vtkPassInputTypeAlgorithm
64 {
65 public:
67 
71  static vtkTemporalStatistics *New();
72  void PrintSelf(ostream &os, vtkIndent indent) override;
74 
76 
80  vtkGetMacro(ComputeAverage, vtkTypeBool);
81  vtkSetMacro(ComputeAverage, vtkTypeBool);
82  vtkBooleanMacro(ComputeAverage, vtkTypeBool);
84 
86 
90  vtkGetMacro(ComputeMinimum, vtkTypeBool);
91  vtkSetMacro(ComputeMinimum, vtkTypeBool);
92  vtkBooleanMacro(ComputeMinimum, vtkTypeBool);
94 
96 
100  vtkGetMacro(ComputeMaximum, vtkTypeBool);
101  vtkSetMacro(ComputeMaximum, vtkTypeBool);
102  vtkBooleanMacro(ComputeMaximum, vtkTypeBool);
104 
105  // Definition:
106  // Turn on/off the computation of the standard deviation of the values over
107  // time. On by default. The resulting array names have "_stddev" appended to
108  // them.
109  vtkGetMacro(ComputeStandardDeviation, vtkTypeBool);
110  vtkSetMacro(ComputeStandardDeviation, vtkTypeBool);
111  vtkBooleanMacro(ComputeStandardDeviation, vtkTypeBool);
112 
113 protected:
115  ~vtkTemporalStatistics() override;
116 
121 
122  // Used when iterating the pipeline to keep track of which timestep we are on.
124 
125  int FillInputPortInformation(int port, vtkInformation *info) override;
126 
127  int RequestDataObject(vtkInformation *request,
128  vtkInformationVector **inputVector,
129  vtkInformationVector *outputVector) override;
130  int RequestInformation(vtkInformation *request,
131  vtkInformationVector **inputVector,
132  vtkInformationVector *outputVector) override;
133  int RequestUpdateExtent(vtkInformation *request,
134  vtkInformationVector **inputVector,
135  vtkInformationVector *outputVector) override;
136  int RequestData(vtkInformation *request,
137  vtkInformationVector **inputVector,
138  vtkInformationVector *outputVector) override;
139 
140  virtual void InitializeStatistics(vtkDataObject *input,
141  vtkDataObject *output);
142  virtual void InitializeStatistics(vtkDataSet *input, vtkDataSet *output);
143  virtual void InitializeStatistics(vtkGraph *input, vtkGraph *output);
144  virtual void InitializeStatistics(vtkCompositeDataSet *input,
145  vtkCompositeDataSet *output);
146  virtual void InitializeArrays(vtkFieldData *inFd, vtkFieldData *outFd);
147  virtual void InitializeArray(vtkDataArray *array, vtkFieldData *outFd);
148 
149  virtual void AccumulateStatistics(vtkDataObject *input,
150  vtkDataObject *output);
151  virtual void AccumulateStatistics(vtkDataSet *input, vtkDataSet *output);
152  virtual void AccumulateStatistics(vtkGraph *input, vtkGraph *output);
153  virtual void AccumulateStatistics(vtkCompositeDataSet *input,
154  vtkCompositeDataSet *output);
155  virtual void AccumulateArrays(vtkFieldData *inFd, vtkFieldData *outFd);
156 
157  virtual void PostExecute(vtkDataObject *input, vtkDataObject *output);
158  virtual void PostExecute(vtkDataSet *input, vtkDataSet *output);
159  virtual void PostExecute(vtkGraph *input, vtkGraph *output);
160  virtual void PostExecute(vtkCompositeDataSet *input,
161  vtkCompositeDataSet *output);
162  virtual void FinishArrays(vtkFieldData *inFd, vtkFieldData *outFd);
163 
164  virtual vtkDataArray *GetArray(vtkFieldData *fieldData,
165  vtkDataArray *inArray,
166  const char *nameSuffix);
167 
168 private:
170  void operator=(const vtkTemporalStatistics &) = delete;
171 
173 
178  bool GeneratedChangingTopologyWarning;
179 };
181 
182 #endif //_vtkTemporalStatistics_h
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.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
int vtkTypeBool
Definition: vtkABI.h:69
Base class for graph data types.
Definition: vtkGraph.h:281
abstract superclass for composite (multi-block or AMR) datasets
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:33
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:48
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called within ProcessRequest to when a request asks the algorithm to create empty output data...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Store zero or more vtkInformation instances.
Compute statistics of point or cell data as it changes over time.
general representation of visualization data
Definition: vtkDataObject.h:58
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkPassInputTypeAlgorithm * New()
represent and manipulate fields of data
Definition: vtkFieldData.h:53