00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkTransmitImageDataPiece_h
00029 #define __vtkTransmitImageDataPiece_h
00030
00031 #include "vtkImageAlgorithm.h"
00032
00033 class vtkMultiProcessController;
00034
00035 class VTK_PARALLEL_EXPORT vtkTransmitImageDataPiece : public vtkImageAlgorithm
00036 {
00037 public:
00038 static vtkTransmitImageDataPiece *New();
00039 vtkTypeRevisionMacro(vtkTransmitImageDataPiece, vtkImageAlgorithm);
00040 void PrintSelf(ostream& os, vtkIndent indent);
00041
00043
00045 virtual void SetController(vtkMultiProcessController*);
00046 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00048
00050
00051 vtkSetMacro(CreateGhostCells, int);
00052 vtkGetMacro(CreateGhostCells, int);
00053 vtkBooleanMacro(CreateGhostCells, int);
00055
00056 protected:
00057 vtkTransmitImageDataPiece();
00058 ~vtkTransmitImageDataPiece();
00059
00060
00061 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00062 void RootExecute(vtkImageData *input, vtkImageData *output,
00063 vtkInformation *outInfo);
00064 void SatelliteExecute(int procId, vtkImageData *output,
00065 vtkInformation *outInfo);
00066 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00067 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00068
00069 int CreateGhostCells;
00070 vtkMultiProcessController *Controller;
00071
00072 private:
00073 vtkTransmitImageDataPiece(const vtkTransmitImageDataPiece&);
00074 void operator=(const vtkTransmitImageDataPiece&);
00075 };
00076
00077 #endif