00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00024 #ifndef __vtkTransmitUnstructuredGridPiece_h
00025 #define __vtkTransmitUnstructuredGridPiece_h
00026 
00027 #include "vtkUnstructuredGridAlgorithm.h"
00028 
00029 class vtkMultiProcessController;
00030 
00031 class VTK_PARALLEL_EXPORT vtkTransmitUnstructuredGridPiece : public vtkUnstructuredGridAlgorithm
00032 {
00033 public:
00034   static vtkTransmitUnstructuredGridPiece *New();
00035   vtkTypeMacro(vtkTransmitUnstructuredGridPiece, vtkUnstructuredGridAlgorithm);
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   vtkTransmitUnstructuredGridPiece();
00054   ~vtkTransmitUnstructuredGridPiece();
00055 
00056   
00057   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00058   void RootExecute(vtkUnstructuredGrid *input, vtkUnstructuredGrid *output,
00059                    vtkInformation *outInfo);
00060   void SatelliteExecute(int procId, vtkUnstructuredGrid *output,
00061                         vtkInformation *outInfo);
00062   virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00063   virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00064  
00065   int CreateGhostCells;
00066   vtkMultiProcessController *Controller;
00067 
00068 private:
00069   vtkTransmitUnstructuredGridPiece(const vtkTransmitUnstructuredGridPiece&); 
00070   void operator=(const vtkTransmitUnstructuredGridPiece&); 
00071 };
00072 
00073 #endif