00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00024 #ifndef __vtkTransmitPolyDataPiece_h
00025 #define __vtkTransmitPolyDataPiece_h
00026 
00027 #include "vtkPolyDataAlgorithm.h"
00028 
00029 class vtkMultiProcessController;
00030 
00031 class VTK_PARALLEL_EXPORT vtkTransmitPolyDataPiece : public vtkPolyDataAlgorithm
00032 {
00033 public:
00034   static vtkTransmitPolyDataPiece *New();
00035   vtkTypeMacro(vtkTransmitPolyDataPiece, vtkPolyDataAlgorithm);
00036   void PrintSelf(ostream& os, vtkIndent indent);
00037   
00039 
00041   virtual void SetController(vtkMultiProcessController*);
00042   vtkGetObjectMacro(Controller, vtkMultiProcessController);
00044 
00046 
00047   vtkSetMacro(CreateGhostCells, int);
00048   vtkGetMacro(CreateGhostCells, int);
00049   vtkBooleanMacro(CreateGhostCells, int);
00051   
00052 protected:
00053   vtkTransmitPolyDataPiece();
00054   ~vtkTransmitPolyDataPiece();
00055 
00056   
00057   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00058   void RootExecute(vtkPolyData *input, vtkPolyData *output, vtkInformation *outInfo);
00059   void SatelliteExecute(int procId, vtkPolyData *output, vtkInformation *outInfo);
00060   int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00061   int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00062  
00063   int CreateGhostCells;
00064   vtkMultiProcessController *Controller;
00065 
00066 private:
00067   vtkTransmitPolyDataPiece(const vtkTransmitPolyDataPiece&); 
00068   void operator=(const vtkTransmitPolyDataPiece&); 
00069 };
00070 
00071 #endif