00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00036 #ifndef __vtkExtractArraysOverTime_h
00037 #define __vtkExtractArraysOverTime_h
00038
00039 #include "vtkMultiBlockDataSetAlgorithm.h"
00040
00041 class vtkSelection;
00042 class vtkDataSet;
00043 class vtkRectilinearGrid;
00044 class vtkExtractArraysOverTimeInternal;
00045 class vtkDataSetAttributes;
00046
00047 class VTK_GRAPHICS_EXPORT vtkExtractArraysOverTime : public vtkMultiBlockDataSetAlgorithm
00048 {
00049 public:
00050 static vtkExtractArraysOverTime *New();
00051 vtkTypeRevisionMacro(vtkExtractArraysOverTime, vtkMultiBlockDataSetAlgorithm);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00055
00056 vtkGetMacro(NumberOfTimeSteps,int);
00058
00060
00062 void SetSelectionConnection(vtkAlgorithmOutput* algOutput)
00063 {
00064 this->SetInputConnection(1, algOutput);
00065 }
00067
00068
00069 protected:
00070 vtkExtractArraysOverTime();
00071 ~vtkExtractArraysOverTime();
00072
00073 virtual int RequestInformation(vtkInformation* request,
00074 vtkInformationVector** inputVector,
00075 vtkInformationVector* outputVector);
00076 virtual int RequestUpdateExtent(vtkInformation* request,
00077 vtkInformationVector** inputVector,
00078 vtkInformationVector* outputVector);
00079 virtual int RequestData(vtkInformation* request,
00080 vtkInformationVector** inputVector,
00081 vtkInformationVector* outputVector);
00082
00083 virtual void PostExecute(vtkInformation* request,
00084 vtkInformationVector** inputVector,
00085 vtkInformationVector* outputVector);
00086
00091 int DetermineSelectionType(vtkSelection*);
00092
00093 virtual int FillInputPortInformation(int port, vtkInformation* info);
00094
00096
00098 vtkIdType GetSelectedId( vtkInformationVector** inputV,
00099 vtkInformation* outInfo);
00101
00105 void CopyFastPathDataToOutput(vtkDataSet *input, vtkRectilinearGrid *output);
00106
00107
00108 void ExecuteAtTimeStep(vtkInformationVector** inputV,
00109 vtkInformation* outInfo);
00110
00111 int CurrentTimeIndex;
00112 int NumberOfTimeSteps;
00113
00114 int FieldType;
00115 int ContentType;
00116
00117 bool WaitingForFastPathData;
00118 bool IsExecuting;
00119 bool UseFastPath;
00120 vtkIdType SelectedId;
00121
00122 int Error;
00123
00124 enum Errors
00125 {
00126 NoError,
00127 MoreThan1Indices
00128 };
00129
00130 private:
00131 vtkExtractArraysOverTime(const vtkExtractArraysOverTime&);
00132 void operator=(const vtkExtractArraysOverTime&);
00133
00134 class vtkInternal;
00135 vtkInternal *Internal;
00136
00137
00138 };
00139
00140 #endif
00141
00142
00143