VTK
dox/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkMultiTimeStepAlgorithm.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00026 #ifndef __vtkMultiTimeStepAlgorithm_h
00027 #define __vtkMultiTimeStepAlgorithm_h
00028 
00029 #include "vtkCommonExecutionModelModule.h" // For export macro
00030 #include "vtkAlgorithm.h"
00031 #include "vtkSmartPointer.h" //needed for a private variable
00032 
00033 #include <vector> //needed for a private variable
00034 
00035 class vtkInformationDoubleVectorKey;
00036 class vtkMultiBlockDataSet;
00037 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkMultiTimeStepAlgorithm : public vtkAlgorithm
00038 {
00039 public:
00040   static vtkMultiTimeStepAlgorithm *New();
00041   vtkTypeMacro(vtkMultiTimeStepAlgorithm,vtkAlgorithm);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00044 
00045 protected:
00046   vtkMultiTimeStepAlgorithm();
00047 
00048   ~vtkMultiTimeStepAlgorithm()
00049   {
00050   };
00051 
00053   static vtkInformationDoubleVectorKey* UPDATE_TIME_STEPS();
00054 
00055 
00057 
00059   virtual int RequestDataObject(vtkInformation*, vtkInformationVector**,  vtkInformationVector*)
00060   {
00061     return 1;
00062   };
00064 
00066 
00068   virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*)
00069   {
00070     return 1;
00071   };
00073 
00075 
00077   virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*)
00078   {
00079     return 1;
00080   }
00082 
00084 
00086   virtual int RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*)
00087   {
00088     return 1;
00089   }
00091 
00092   int ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
00093 
00094 private:
00095   vtkMultiTimeStepAlgorithm(const vtkMultiTimeStepAlgorithm&);  // Not implemented.
00096   void operator=(const vtkMultiTimeStepAlgorithm&);  // Not implemented.
00097 
00098 
00099   vtkSmartPointer<vtkMultiBlockDataSet> MDataSet; //stores all the temporal data sets
00100   int RequestUpdateIndex; //keep track of the time looping index
00101   std::vector<double> UpdateTimeSteps;  //store the requested time steps
00102 };
00103 
00104 #endif