VTK
|
00001 // -*- c++ -*- 00002 /*========================================================================= 00003 00004 Program: Visualization Toolkit 00005 Module: vtkTemporalStatistics.h 00006 00007 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00016 00017 /* 00018 * Copyright 2008 Sandia Corporation. 00019 * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00020 * license for use of this work by or on behalf of the 00021 * U.S. Government. Redistribution and use in source and binary forms, with 00022 * or without modification, are permitted provided that this Notice and any 00023 * statement of authorship are reproduced on all copies. 00024 */ 00025 00054 #ifndef _vtkTemporalStatistics_h 00055 #define _vtkTemporalStatistics_h 00056 00057 #include "vtkPassInputTypeAlgorithm.h" 00058 00059 class vtkCompositeDataSet; 00060 class vtkDataSet; 00061 class vtkFieldData; 00062 class vtkGraph; 00063 00064 class VTK_GRAPHICS_EXPORT vtkTemporalStatistics : public vtkPassInputTypeAlgorithm 00065 { 00066 public: 00067 vtkTypeMacro(vtkTemporalStatistics, vtkPassInputTypeAlgorithm); 00068 static vtkTemporalStatistics *New(); 00069 virtual void PrintSelf(ostream &os, vtkIndent indent); 00070 00072 00074 vtkGetMacro(ComputeAverage, int); 00075 vtkSetMacro(ComputeAverage, int); 00076 vtkBooleanMacro(ComputeAverage, int); 00078 00080 00082 vtkGetMacro(ComputeMinimum, int); 00083 vtkSetMacro(ComputeMinimum, int); 00084 vtkBooleanMacro(ComputeMinimum, int); 00086 00088 00090 vtkGetMacro(ComputeMaximum, int); 00091 vtkSetMacro(ComputeMaximum, int); 00092 vtkBooleanMacro(ComputeMaximum, int); 00094 00095 // Definition: 00096 // Turn on/off the computation of the standard deviation of the values over 00097 // time. On by default. The resulting array names have "_stddev" appended to 00098 // them. 00099 vtkGetMacro(ComputeStandardDeviation, int); 00100 vtkSetMacro(ComputeStandardDeviation, int); 00101 vtkBooleanMacro(ComputeStandardDeviation, int); 00102 00103 protected: 00104 vtkTemporalStatistics(); 00105 ~vtkTemporalStatistics(); 00106 00107 int ComputeAverage; 00108 int ComputeMaximum; 00109 int ComputeMinimum; 00110 int ComputeStandardDeviation; 00111 00112 // Used when iterating the pipeline to keep track of which timestep we are on. 00113 int CurrentTimeIndex; 00114 00115 virtual int FillInputPortInformation(int port, vtkInformation *info); 00116 00117 virtual int RequestDataObject(vtkInformation *request, 00118 vtkInformationVector **inputVector, 00119 vtkInformationVector *outputVector); 00120 virtual int RequestInformation(vtkInformation *request, 00121 vtkInformationVector **inputVector, 00122 vtkInformationVector *outputVector); 00123 virtual int RequestUpdateExtent(vtkInformation *request, 00124 vtkInformationVector **inputVector, 00125 vtkInformationVector *outputVector); 00126 virtual int RequestData(vtkInformation *request, 00127 vtkInformationVector **inputVector, 00128 vtkInformationVector *outputVector); 00129 00130 virtual void InitializeStatistics(vtkDataObject *input, 00131 vtkDataObject *output); 00132 virtual void InitializeStatistics(vtkDataSet *input, vtkDataSet *output); 00133 virtual void InitializeStatistics(vtkGraph *input, vtkGraph *output); 00134 virtual void InitializeStatistics(vtkCompositeDataSet *input, 00135 vtkCompositeDataSet *output); 00136 virtual void InitializeArrays(vtkFieldData *inFd, vtkFieldData *outFd); 00137 virtual void InitializeArray(vtkDataArray *array, vtkFieldData *outFd); 00138 00139 virtual void AccumulateStatistics(vtkDataObject *input, 00140 vtkDataObject *output); 00141 virtual void AccumulateStatistics(vtkDataSet *input, vtkDataSet *output); 00142 virtual void AccumulateStatistics(vtkGraph *input, vtkGraph *output); 00143 virtual void AccumulateStatistics(vtkCompositeDataSet *input, 00144 vtkCompositeDataSet *output); 00145 virtual void AccumulateArrays(vtkFieldData *inFd, vtkFieldData *outFd); 00146 00147 virtual void PostExecute(vtkDataObject *input, vtkDataObject *output); 00148 virtual void PostExecute(vtkDataSet *input, vtkDataSet *output); 00149 virtual void PostExecute(vtkGraph *input, vtkGraph *output); 00150 virtual void PostExecute(vtkCompositeDataSet *input, 00151 vtkCompositeDataSet *output); 00152 virtual void FinishArrays(vtkFieldData *inFd, vtkFieldData *outFd); 00153 00154 virtual vtkDataArray *GetArray(vtkFieldData *fieldData, 00155 vtkDataArray *inArray, 00156 const char *nameSuffix); 00157 00158 private: 00159 vtkTemporalStatistics(const vtkTemporalStatistics &); // Not implemented. 00160 void operator=(const vtkTemporalStatistics &); // Not implemented. 00161 }; 00162 00163 #endif //_vtkTemporalStatistics_h