VTK
dox/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 "vtkObject.h"
00032 
00033 class vtkDSPFilterGroupVectorIntSTLCloak;
00034 class vtkDSPFilterGroupVectorVectorIntSTLCloak;
00035 class vtkDSPFilterGroupVectorArraySTLCloak;
00036 class vtkDSPFilterGroupVectorVectorArraySTLCloak;
00037 class vtkDSPFilterGroupVectorStringSTLCloak;
00038 class vtkDSPFilterGroupVectorDefinitionSTLCloak;
00039 class vtkFloatArray;
00040 class vtkDSPFilterDefinition;
00041 
00042 class VTK_HYBRID_EXPORT vtkDSPFilterGroup : public vtkObject
00043 {
00044 public:
00045   static vtkDSPFilterGroup *New();
00046   vtkTypeMacro(vtkDSPFilterGroup,vtkObject);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00049 
00050   void AddFilter(vtkDSPFilterDefinition *filter);
00051   void RemoveFilter(char *a_outputVariableName);
00052 
00053   bool IsThisInputVariableInstanceNeeded( const char *a_name, int a_timestep, int a_outputTimestep );
00054   bool IsThisInputVariableInstanceCached( const char *a_name, int a_timestep );
00055   void AddInputVariableInstance( const char *a_name, int a_timestep, vtkFloatArray *a_data );
00056 
00057   vtkFloatArray *GetOutput( int a_whichFilter, int a_whichTimestep, int &a_instancesCalculated );
00058 
00059   vtkFloatArray *GetCachedInput( int a_whichFilter, int a_whichTimestep );
00060   vtkFloatArray *GetCachedOutput( int a_whichFilter, int a_whichTimestep );
00061 
00062   const char *GetInputVariableName(int a_whichFilter);
00063 
00064   int GetNumFilters();
00065 
00066   void Copy( vtkDSPFilterGroup *other );
00067 
00068   vtkDSPFilterDefinition *GetFilter(int a_whichFilter);
00069 
00070   vtkDSPFilterGroupVectorDefinitionSTLCloak * /*std::vector<vtkDSPFilterDefinition *>*/ FilterDefinitions;
00071 
00072 protected:
00073   vtkDSPFilterGroup();
00074   ~vtkDSPFilterGroup();
00075 
00076 
00077   vtkDSPFilterGroupVectorArraySTLCloak * /*std::vector<vtkFloatArray *>*/ CachedInputs;
00078   vtkDSPFilterGroupVectorStringSTLCloak * /*std::vector<std::string>*/ CachedInputNames;
00079   vtkDSPFilterGroupVectorIntSTLCloak * /*std::vector<int>*/ CachedInputTimesteps;
00080 
00081   vtkDSPFilterGroupVectorVectorArraySTLCloak * /*std::vector< std::vector<vtkFloatArray *> >*/ CachedOutputs;
00082   vtkDSPFilterGroupVectorVectorIntSTLCloak * /*std::vector< std::vector<int> >*/ CachedOutputTimesteps;
00083 
00084 private:
00085   vtkDSPFilterGroup(const vtkDSPFilterGroup&); // Not implemented
00086   void operator=(const vtkDSPFilterGroup&); // Not implemented
00087 };
00088 
00089 #endif