Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Servers/Filters/vtkClientCompositeManager.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkClientCompositeManager.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00029 #ifndef __vtkClientCompositeManager_h
00030 #define __vtkClientCompositeManager_h
00031 
00032 #include "vtkParallelRenderManager.h"
00033 
00034 class vtkRenderWindow;
00035 class vtkMultiProcessController;
00036 class vtkSocketController;
00037 class vtkCompositer;
00038 class vtkRenderer;
00039 class vtkDataArray;
00040 class vtkFloatArray;
00041 class vtkUnsignedCharArray;
00042 class vtkImageData;
00043 class vtkImageActor;
00044 class vtkCamera;
00045 
00046 class VTK_EXPORT vtkClientCompositeManager : public vtkParallelRenderManager
00047 {
00048 public:
00049   static vtkClientCompositeManager *New();
00050   vtkTypeRevisionMacro(vtkClientCompositeManager,vtkParallelRenderManager);
00051   void PrintSelf(ostream& os, vtkIndent indent);
00052 
00055   virtual void SetRenderWindow(vtkRenderWindow *renWin);
00056 
00058   virtual void InitializeOffScreen();
00059 
00061 
00062   virtual void StartRender();
00063   virtual void EndRender();
00064   void RenderRMI();
00066   
00069   virtual void InitializeRMIs();
00070   
00074   void SetController(vtkMultiProcessController* controller);
00075 
00077 
00078   void SetClientController(vtkSocketController* controller);
00079   vtkGetObjectMacro(ClientController, vtkSocketController); 
00081 
00083 
00085   vtkSetMacro(ClientFlag, int);
00086   vtkGetMacro(ClientFlag, int);
00088 
00090 
00094   void SetUseRGB(int useRGB);
00095   vtkGetMacro(UseRGB, int);
00096   vtkBooleanMacro(UseRGB, int);
00098 
00100 
00102   void SetCompositer(vtkCompositer *c);
00103   vtkGetObjectMacro(Compositer,vtkCompositer);
00105 
00106 //BTX
00107   enum Tags {
00108     RENDER_RMI_TAG=12721,
00109     WIN_INFO_TAG=22134,
00110     REN_INFO_TAG=22135,
00111     GATHER_Z_RMI_TAG=987987,
00112     SERVER_Z_TAG=88771,
00113     CLIENT_Z_TAG=88772
00114   };
00115 //ETX
00116 
00118 
00120   float GetZBufferValue(int x, int y);
00121   void GatherZBufferValueRMI(int x, int y);
00123 
00125 
00126   vtkSetClampMacro(SquirtLevel, int, 0, 7);
00127   vtkGetMacro(SquirtLevel, int);
00129 
00130 protected:
00131   vtkClientCompositeManager();
00132   ~vtkClientCompositeManager();
00133   
00134   vtkSocketController* ClientController;
00135   vtkCompositer *Compositer;
00136 
00137   int ClientFlag;
00138   unsigned long StartTag;
00139   
00140   void SetPDataSize(int x, int y);
00141   void ReallocPDataArrays();
00142 
00143   virtual void SatelliteStartRender();
00144   virtual void SatelliteEndRender();
00145 
00146   void PreRenderProcessing() {}
00147   void PostRenderProcessing() {}
00148   vtkImageData *CompositeData;
00149   vtkImageActor *ImageActor;
00150   // This is used to restore the camera.
00151   // We have to change it to display the image actor.
00152   vtkCamera* SavedCamera;
00153 
00154   // Same method that is in vtkComposite manager.
00155   // We should find a way to share this method. !!!!
00156   void MagnifyBuffer(vtkDataArray* localP, 
00157                      vtkDataArray* magP,
00158                      int windowSize[2]);
00159 
00160   void DoubleBuffer(vtkDataArray* localP, 
00161                     vtkDataArray* magP,
00162                     int windowSize[2]);
00163 
00164 
00165   // Our simple alternative to compositing.
00166   void ReceiveAndSetColorBuffer();
00167 
00168   vtkObject *RenderView;
00169   double InternalReductionFactor;
00170 
00171   int PDataSize[2];
00172   vtkDataArray *PData;
00173   vtkFloatArray *ZData;
00174   // Temporary arrays used for compositing.
00175   vtkDataArray *PData2;
00176   vtkFloatArray *ZData2;
00177 
00178   int SquirtLevel;
00179   vtkUnsignedCharArray *SquirtArray;
00180   void SquirtCompress(vtkUnsignedCharArray *in,
00181                       vtkUnsignedCharArray *out,
00182                       int compress_level);
00183   void SquirtDecompress(vtkUnsignedCharArray *in,
00184                         vtkUnsignedCharArray *out);
00185 
00186   vtkUnsignedCharArray *BaseArray;
00187   void DeltaEncode(vtkUnsignedCharArray *buf);
00188   void DeltaDecode(vtkUnsignedCharArray *buf);
00189 
00190   int UseRGB;
00191 
00192 private:
00193   vtkClientCompositeManager(const vtkClientCompositeManager&); // Not implemented
00194   void operator=(const vtkClientCompositeManager&); // Not implemented
00195 };
00196 
00197 #endif

Generated on Tue May 30 12:31:45 2006 for ParaView by doxygen 1.3.5