Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkStreamingDemandDrivenPipeline.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkStreamingDemandDrivenPipeline.h,v $
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 =========================================================================*/
00031 #ifndef __vtkStreamingDemandDrivenPipeline_h
00032 #define __vtkStreamingDemandDrivenPipeline_h
00033 
00034 #include "vtkDemandDrivenPipeline.h"
00035 
00036 class vtkExtentTranslator;
00037 class vtkInformationDoubleVectorKey;
00038 class vtkInformationIntegerKey;
00039 class vtkInformationIntegerVectorKey;
00040 class vtkInformationObjectBaseKey;
00041 
00042 class VTK_FILTERING_EXPORT vtkStreamingDemandDrivenPipeline : public vtkDemandDrivenPipeline
00043 {
00044 public:
00045   static vtkStreamingDemandDrivenPipeline* New();
00046   vtkTypeRevisionMacro(vtkStreamingDemandDrivenPipeline,vtkDemandDrivenPipeline);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00050 
00052   virtual int Update();
00053   virtual int Update(int port);
00054   virtual int Update(vtkAlgorithm* algorithm);
00055   virtual int UpdateWholeExtent(vtkAlgorithm* algorithm);
00056   virtual int Update(vtkAlgorithm* algorithm, int port);
00058 
00059   virtual int UpdateData(int outputPort);
00060 
00061   static vtkInformationIntegerKey* CONTINUE_EXECUTING();
00062   static vtkInformationObjectBaseKey* EXTENT_TRANSLATOR();
00063   static vtkInformationIntegerKey* MAXIMUM_NUMBER_OF_PIECES();
00064   static vtkInformationIntegerKey* REQUEST_UPDATE_EXTENT();
00065   static vtkInformationIntegerKey* UPDATE_EXTENT_INITIALIZED();
00066   static vtkInformationIntegerVectorKey* UPDATE_EXTENT();
00067   static vtkInformationIntegerKey* UPDATE_PIECE_NUMBER();
00068   static vtkInformationIntegerKey* UPDATE_NUMBER_OF_PIECES();
00069   static vtkInformationIntegerKey* UPDATE_NUMBER_OF_GHOST_LEVELS();
00070   static vtkInformationIntegerVectorKey* WHOLE_EXTENT();
00071   static vtkInformationDoubleVectorKey* WHOLE_BOUNDING_BOX();
00072   static vtkInformationIntegerKey* EXACT_EXTENT();
00073 
00074   int PropagateUpdateExtent(int outputPort);
00075 
00076   int SetMaximumNumberOfPieces(int port, int n);
00077   int GetMaximumNumberOfPieces(int port);
00078   int SetWholeExtent(int port, int extent[6]);
00079   void GetWholeExtent(int port, int extent[6]);
00080   int* GetWholeExtent(int port);
00081   int SetUpdateExtentToWholeExtent(int port);
00082   int SetUpdateExtent(int port, int extent[6]);
00083   void GetUpdateExtent(int port, int extent[6]);
00084   int* GetUpdateExtent(int port);
00085   int SetUpdateExtent(int port, int piece, int numPieces, int ghostLevel);
00086   int SetUpdatePiece(int port, int piece);
00087   int GetUpdatePiece(int port);
00088   int SetUpdateNumberOfPieces(int port, int n);
00089   int GetUpdateNumberOfPieces(int port);
00090   int SetUpdateGhostLevel(int port, int n);
00091   int GetUpdateGhostLevel(int port);
00092   int SetRequestExactExtent(int port, int flag);
00093   int GetRequestExactExtent(int port);
00094   int SetExtentTranslator(int port, vtkExtentTranslator* translator);
00095   vtkExtentTranslator* GetExtentTranslator(int port);
00096   int SetWholeBoundingBox(int port, double bb[6]);
00097   void GetWholeBoundingBox(int port, double bb[6]);
00098   double* GetWholeBoundingBox(int port);
00099 
00100 protected:
00101   vtkStreamingDemandDrivenPipeline();
00102   ~vtkStreamingDemandDrivenPipeline();
00103 
00104   virtual int ExecuteInformation();
00105   virtual void CopyDefaultDownstreamInformation();
00106   virtual void CopyDefaultUpstreamInformation(int outputPort);
00107   int VerifyOutputInformation(int outputPort);
00108   virtual int NeedToExecuteData(int outputPort);
00109 
00110   // Put default information in output information objects.
00111   virtual void FillDefaultOutputInformation(int port, vtkInformation*);
00112 
00113   // Reset the pipeline update values in the given output information object.
00114   virtual void ResetPipelineInformation(int port, vtkInformation*);
00115 
00116 private:
00117   vtkStreamingDemandDrivenPipeline(const vtkStreamingDemandDrivenPipeline&);  // Not implemented.
00118   void operator=(const vtkStreamingDemandDrivenPipeline&);  // Not implemented.
00119 };
00120 
00121 #endif