vtkInputPort.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00047 #ifndef __vtkInputPort_h
00048 #define __vtkInputPort_h
00049
00050 #include "vtkSource.h"
00051
00052 class vtkPolyData;
00053 class vtkUnstructuredGrid;
00054 class vtkStructuredGrid;
00055 class vtkRectilinearGrid;
00056 class vtkStructuredPoints;
00057 class vtkImageData;
00058 class vtkMultiProcessController;
00059
00060 class VTK_PARALLEL_EXPORT vtkInputPort : public vtkSource
00061 {
00062 public:
00063 static vtkInputPort *New();
00064 vtkTypeRevisionMacro(vtkInputPort,vtkSource);
00065 void PrintSelf(ostream& os, vtkIndent indent);
00066
00068
00072 vtkPolyData *GetPolyDataOutput();
00073 vtkUnstructuredGrid *GetUnstructuredGridOutput();
00074 vtkStructuredGrid *GetStructuredGridOutput();
00075 vtkRectilinearGrid *GetRectilinearGridOutput();
00076 vtkStructuredPoints *GetStructuredPointsOutput();
00077 vtkImageData *GetImageDataOutput();
00079
00081
00084 vtkSetMacro(RemoteProcessId, int);
00085 vtkGetMacro(RemoteProcessId, int);
00086 vtkSetMacro(Tag, int);
00087 vtkGetMacro(Tag, int);
00089
00091 unsigned long GetMTime();
00092
00094
00096 vtkMultiProcessController *GetController() {return this->Controller;}
00097 virtual void SetController(vtkMultiProcessController*);
00099
00101
00106 vtkSetMacro(DoUpdateInformation, int);
00107 vtkGetMacro(DoUpdateInformation, int);
00109
00110
00111
00112
00113 enum Tags {
00114 DOWN_DATA_TIME_TAG = 98970,
00115 UPDATE_EXTENT_TAG = 98971,
00116 TRANSFER_NEEDED_TAG = 98972,
00117 INFORMATION_TRANSFER_TAG = 98973,
00118 DATA_TRANSFER_TAG = 98974,
00119 NEW_DATA_TIME_TAG = 98975
00120 };
00121
00122
00123
00124 protected:
00125 vtkInputPort();
00126 ~vtkInputPort();
00127
00128 vtkMultiProcessController *Controller;
00129 int RemoteProcessId;
00130 int Tag;
00131
00132 unsigned long DataTime;
00133 unsigned long UpStreamMTime;
00134 int TransferNeeded;
00135 int DoUpdateInformation;
00136
00137 int LastUpdatePiece;
00138 int LastUpdateNumberOfPieces;
00139 int LastUpdateGhostLevel;
00140
00141 vtkSetVector6Macro(LastUpdateExtent, int);
00142 int LastUpdateExtent[6];
00143
00144 int UpdateExtentIsOutsideOfTheExtent(vtkDataObject *output);
00145
00146 void ExecuteInformation();
00147 void ExecuteData(vtkDataObject *output);
00148
00149
00150 virtual int FillOutputPortInformation(int port, vtkInformation* info);
00151
00152 private:
00153 vtkInputPort(const vtkInputPort&);
00154 void operator=(const vtkInputPort&);
00155 };
00156
00157 #endif
00158
00159