VTK
|
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