VTK
dox/Filters/Hybrid/vtkDSPFilterGroup.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkDSPFilterGroup.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 =========================================================================*/
00015 /*----------------------------------------------------------------------------
00016  Copyright (c) Sandia Corporation
00017  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00018 ----------------------------------------------------------------------------*/
00028 #ifndef __vtkDSPFilterGroup_h
00029 #define __vtkDSPFilterGroup_h
00030 
00031 #include "vtkFiltersHybridModule.h" // For export macro
00032 #include "vtkObject.h"
00033 
00034 class vtkDSPFilterGroupVectorIntSTLCloak;
00035 class vtkDSPFilterGroupVectorVectorIntSTLCloak;
00036 class vtkDSPFilterGroupVectorArraySTLCloak;
00037 class vtkDSPFilterGroupVectorVectorArraySTLCloak;
00038 class vtkDSPFilterGroupVectorStringSTLCloak;
00039 class vtkDSPFilterGroupVectorDefinitionSTLCloak;
00040 class vtkFloatArray;
00041 class vtkDSPFilterDefinition;
00042 
00043 class VTKFILTERSHYBRID_EXPORT vtkDSPFilterGroup : public vtkObject
00044 {
00045 public:
00046   static vtkDSPFilterGroup *New();
00047   vtkTypeMacro(vtkDSPFilterGroup,vtkObject);
00048   void PrintSelf(ostream& os, vtkIndent indent);
00049 
00050 
00051   void AddFilter(vtkDSPFilterDefinition *filter);
00052   void RemoveFilter(char *a_outputVariableName);
00053 
00054   bool IsThisInputVariableInstanceNeeded( const char *a_name, int a_timestep, int a_outputTimestep );
00055   bool IsThisInputVariableInstanceCached( const char *a_name, int a_timestep );
00056   void AddInputVariableInstance( const char *a_name, int a_timestep, vtkFloatArray *a_data );
00057 
00058   vtkFloatArray *GetOutput( int a_whichFilter, int a_whichTimestep, int &a_instancesCalculated );
00059 
00060   vtkFloatArray *GetCachedInput( int a_whichFilter, int a_whichTimestep );
00061   vtkFloatArray *GetCachedOutput( int a_whichFilter, int a_whichTimestep );
00062 
00063   const char *GetInputVariableName(int a_whichFilter);
00064 
00065   int GetNumFilters();
00066 
00067   void Copy( vtkDSPFilterGroup *other );
00068 
00069   vtkDSPFilterDefinition *GetFilter(int a_whichFilter);
00070 
00071   vtkDSPFilterGroupVectorDefinitionSTLCloak * /*std::vector<vtkDSPFilterDefinition *>*/ FilterDefinitions;
00072 
00073 protected:
00074   vtkDSPFilterGroup();
00075   ~vtkDSPFilterGroup();
00076 
00077 
00078   vtkDSPFilterGroupVectorArraySTLCloak * /*std::vector<vtkFloatArray *>*/ CachedInputs;
00079   vtkDSPFilterGroupVectorStringSTLCloak * /*std::vector<std::string>*/ CachedInputNames;
00080   vtkDSPFilterGroupVectorIntSTLCloak * /*std::vector<int>*/ CachedInputTimesteps;
00081 
00082   vtkDSPFilterGroupVectorVectorArraySTLCloak * /*std::vector< std::vector<vtkFloatArray *> >*/ CachedOutputs;
00083   vtkDSPFilterGroupVectorVectorIntSTLCloak * /*std::vector< std::vector<int> >*/ CachedOutputTimesteps;
00084 
00085 private:
00086   vtkDSPFilterGroup(const vtkDSPFilterGroup&); // Not implemented
00087   void operator=(const vtkDSPFilterGroup&); // Not implemented
00088 };
00089 
00090 #endif