00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkIceTClientCompositeManager_h
00029 #define __vtkIceTClientCompositeManager_h
00030
00031 #include "vtkObject.h"
00032
00033 class vtkRenderWindow;
00034 class vtkMultiProcessController;
00035 class vtkSocketController;
00036 class vtkCompositer;
00037 class vtkRenderer;
00038 class vtkDataArray;
00039 class vtkFloatArray;
00040 class vtkUnsignedCharArray;
00041 class vtkIceTRenderManager;
00042
00043 class VTK_EXPORT vtkIceTClientCompositeManager : public vtkObject
00044 {
00045 public:
00046 static vtkIceTClientCompositeManager *New();
00047 vtkTypeRevisionMacro(vtkIceTClientCompositeManager,vtkObject);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00049
00051
00053 vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
00054 virtual void SetRenderWindow(vtkRenderWindow *renWin);
00056
00058 void InitializeOffScreen();
00059
00061
00062 virtual void StartRender();
00063 void RenderRMI();
00065
00068 virtual void InitializeRMIs();
00069
00071
00074 void SetCompositeController(vtkMultiProcessController* controller);
00075 vtkGetObjectMacro(CompositeController, vtkMultiProcessController);
00077
00079
00080 void SetClientController(vtkSocketController* controller);
00081 vtkGetObjectMacro(ClientController, vtkSocketController);
00083
00085
00087 vtkSetMacro(ClientFlag, int);
00088 vtkGetMacro(ClientFlag, int);
00090
00092
00094 vtkSetMacro(ImageReductionFactor, int);
00095 vtkGetMacro(ImageReductionFactor, int);
00097
00099 virtual void SetRenderView(vtkObject*) {};
00100
00102
00104 void SetIceTManager(vtkIceTRenderManager *c);
00105 vtkGetObjectMacro(IceTManager,vtkIceTRenderManager);
00107
00109
00112 vtkSetMacro(Tiled,int);
00113 vtkGetMacro(Tiled,int);
00114 vtkBooleanMacro(Tiled,int);
00115 vtkSetVector2Macro(TiledDimensions,int);
00116 vtkGetVector2Macro(TiledDimensions,int);
00118
00119
00121
00123 vtkSetVector2Macro(TileSize,int);
00124 vtkGetVector2Macro(TileSize,int);
00126
00127
00128 enum Tags {
00129 RENDER_RMI_TAG = 12721,
00130 WIN_INFO_TAG = 22134,
00131 REN_INFO_TAG = 22135,
00132 GATHER_Z_RMI_TAG = 987987,
00133 SERVER_Z_TAG = 88771,
00134 CLIENT_Z_TAG = 88772
00135 };
00136
00137
00139
00140 vtkSetMacro(UseCompositing, int);
00141 vtkGetMacro(UseCompositing, int);
00142 vtkBooleanMacro(UseCompositing, int);
00144
00146
00148 float GetZBufferValue(int x, int y);
00149 void GatherZBufferValueRMI(int x, int y);
00151
00153
00155 vtkSetMacro(UseCompositeCompression,int);
00156 vtkGetMacro(UseCompositeCompression,int);
00157 vtkBooleanMacro(UseCompositeCompression,int);
00159
00160 protected:
00161 vtkIceTClientCompositeManager();
00162 ~vtkIceTClientCompositeManager();
00163
00164 vtkRenderWindow* RenderWindow;
00165 vtkMultiProcessController* CompositeController;
00166 vtkSocketController* ClientController;
00167 vtkIceTRenderManager *IceTManager;
00168
00169 int Tiled;
00170 int TiledDimensions[2];
00171 int TileSize[2];
00172
00173 int ClientFlag;
00174 unsigned long StartTag;
00175
00176
00177 virtual void SatelliteStartRender();
00178 virtual void SatelliteEndRender();
00179
00180 vtkObject *RenderView;
00181 int ImageReductionFactor;
00182
00183 int UseCompositing;
00184 int UseCompositeCompression;
00185
00186
00187 enum {
00188 ACKNOWLEDGE_RMI = 17231
00189 };
00190
00191
00192 private:
00193 vtkIceTClientCompositeManager(const vtkIceTClientCompositeManager&);
00194 void operator=(const vtkIceTClientCompositeManager&);
00195 };
00196
00197 #endif