VTK
dox/Graphics/vtkTemporalStatistics.h
Go to the documentation of this file.
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