00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __vtkDSPFilterGroup_h
00021 #define __vtkDSPFilterGroup_h
00022
00023 #include "vtkObject.h"
00024
00025 class vtkDSPFilterGroupVectorIntSTLCloak;
00026 class vtkDSPFilterGroupVectorVectorIntSTLCloak;
00027 class vtkDSPFilterGroupVectorArraySTLCloak;
00028 class vtkDSPFilterGroupVectorVectorArraySTLCloak;
00029 class vtkDSPFilterGroupVectorStringSTLCloak;
00030 class vtkDSPFilterGroupVectorDefinitionSTLCloak;
00031 class vtkFloatArray;
00032 class vtkDSPFilterDefinition;
00033
00034 class VTK_HYBRID_EXPORT vtkDSPFilterGroup : public vtkObject
00035 {
00036 public:
00037 static vtkDSPFilterGroup *New();
00038 vtkTypeRevisionMacro(vtkDSPFilterGroup,vtkObject);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00041
00042 void AddFilter(vtkDSPFilterDefinition *filter);
00043 void RemoveFilter(char *a_outputVariableName);
00044
00045 bool IsThisInputVariableInstanceNeeded( const char *a_name, int a_timestep, int a_outputTimestep );
00046 bool IsThisInputVariableInstanceCached( const char *a_name, int a_timestep );
00047 void AddInputVariableInstance( const char *a_name, int a_timestep, vtkFloatArray *a_data );
00048
00049 vtkFloatArray *GetOutput( int a_whichFilter, int a_whichTimestep, int &a_instancesCalculated );
00050
00051 vtkFloatArray *GetCachedInput( int a_whichFilter, int a_whichTimestep );
00052 vtkFloatArray *GetCachedOutput( int a_whichFilter, int a_whichTimestep );
00053
00054 const char *GetInputVariableName(int a_whichFilter);
00055
00056 int GetNumFilters();
00057
00058 void Copy( vtkDSPFilterGroup *other );
00059
00060 vtkDSPFilterDefinition *GetFilter(int a_whichFilter);
00061
00062 vtkDSPFilterGroupVectorDefinitionSTLCloak * FilterDefinitions;
00063
00064 protected:
00065 vtkDSPFilterGroup();
00066 ~vtkDSPFilterGroup();
00067
00068
00069 vtkDSPFilterGroupVectorArraySTLCloak * CachedInputs;
00070 vtkDSPFilterGroupVectorStringSTLCloak * CachedInputNames;
00071 vtkDSPFilterGroupVectorIntSTLCloak * CachedInputTimesteps;
00072
00073 vtkDSPFilterGroupVectorVectorArraySTLCloak * CachedOutputs;
00074 vtkDSPFilterGroupVectorVectorIntSTLCloak * CachedOutputTimesteps;
00075
00076 private:
00077 vtkDSPFilterGroup(const vtkDSPFilterGroup&);
00078 void operator=(const vtkDSPFilterGroup&);
00079 };
00080
00081 #endif