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

Servers/Filters/vtkPVDesktopDeliveryServer.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVDesktopDeliveryServer.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 =========================================================================*/
00033 #ifndef __vtkPVDesktopDeliveryServer_h
00034 #define __vtkPVDesktopDeliveryServer_h
00035 
00036 #include "vtkParallelRenderManager.h"
00037 
00038 class vtkPVDesktopDeliveryServerRendererMap;
00039 
00040 class VTK_EXPORT vtkPVDesktopDeliveryServer : public vtkParallelRenderManager
00041 {
00042 public:
00043   vtkTypeRevisionMacro(vtkPVDesktopDeliveryServer, vtkParallelRenderManager);
00044   virtual void PrintSelf(ostream &os, vtkIndent indent);
00045 
00046   static vtkPVDesktopDeliveryServer *New();
00047 
00052   virtual void SetController(vtkMultiProcessController *controller);
00053 
00055 
00060   virtual void SetParallelRenderManager(vtkParallelRenderManager *prm);
00061   vtkGetObjectMacro(ParallelRenderManager, vtkParallelRenderManager);
00063 
00064   virtual void SetRenderWindow(vtkRenderWindow *renWin);
00065 
00067 
00072   virtual void SetRemoteDisplay(int);
00073   vtkGetMacro(RemoteDisplay, int);
00074   vtkBooleanMacro(RemoteDisplay, int);
00076 
00078 
00081   virtual void AddRenderer(vtkRenderer *ren) { this->AddRenderer(0, ren); }
00082   virtual void RemoveRenderer(vtkRenderer *ren) { this->RemoveRenderer(0,ren); }
00083   virtual void RemoveAllRenderers() { this->RemoveAllRenderers(0); }
00084   virtual void AddRenderer(int id, vtkRenderer *ren);
00085   virtual void RemoveRenderer(int id, vtkRenderer *ren);
00086   virtual void RemoveAllRenderers(int id);
00088 
00089   virtual void InitializeRMIs();
00090 
00092   virtual void UseRendererSet(int id);
00093 
00094 //BTX
00095 
00096   enum Tags {
00097     IMAGE_TAG=12433,
00098     IMAGE_SIZE_TAG=12434,
00099     REMOTE_DISPLAY_TAG=834340,
00100     TIMING_METRICS_TAG=834341,
00101     SQUIRT_OPTIONS_TAG=834342,
00102     IMAGE_PARAMS_TAG=834343,
00103     WINDOW_ID_RMI_TAG=502382,
00104     WINDOW_GEOMETRY_TAG=502383
00105   };
00106 
00107   struct TimingMetrics {
00108     double ImageProcessingTime;
00109   };
00110 
00111   struct WindowGeometry {
00112     int Position[2];
00113     int GUISize[2];
00114     int Id;
00115     int AnnotationLayer;
00116   };
00117 
00118   struct SquirtOptions {
00119     int Enabled;
00120     int CompressLevel;
00121   };
00122 
00123   struct ImageParams {
00124     int RemoteDisplay;
00125     int SquirtCompressed;
00126     int NumberOfComponents;
00127     int BufferSize;
00128     int ImageSize[2];
00129   };
00130 
00131   enum TimingMetricSize {
00132     TIMING_METRICS_SIZE=sizeof(struct TimingMetrics)/sizeof(double)
00133   };
00134   enum WindowGeometrySize {
00135     WINDOW_GEOMETRY_SIZE=sizeof(struct WindowGeometry)/sizeof(int)
00136   };
00137   enum SquirtOptionSize {
00138     SQUIRT_OPTIONS_SIZE=sizeof(struct SquirtOptions)/sizeof(int)
00139   };
00140   enum ImageParamsSize {
00141     IMAGE_PARAMS_SIZE=sizeof(struct ImageParams)/sizeof(int)
00142   };
00143 
00144 //ETX
00145   
00146 protected:
00147   vtkPVDesktopDeliveryServer();
00148   virtual ~vtkPVDesktopDeliveryServer();
00149 
00150   virtual void PreRenderProcessing();
00151   virtual void PostRenderProcessing();
00152   virtual void LocalComputeVisiblePropBounds(vtkRenderer *, double bounds[6]);
00153 
00154   vtkParallelRenderManager *ParallelRenderManager;
00155 
00156   unsigned long StartParallelRenderTag;
00157   unsigned long EndParallelRenderTag;
00158 
00159   unsigned long ReceiveWindowIdTag;
00160 
00161   virtual void SetRenderWindowSize();
00162 
00163   virtual void ReadReducedImage();
00164 
00165   virtual void ReceiveWindowInformation();
00166   virtual void ReceiveRendererInformation(vtkRenderer *);
00167 
00168   int Squirt;
00169   int SquirtCompressionLevel;
00170   void SquirtCompress(vtkUnsignedCharArray *in, vtkUnsignedCharArray *out);
00171 
00172   int RemoteDisplay;
00173 
00174   vtkUnsignedCharArray *SquirtBuffer;
00175 
00176   vtkPVDesktopDeliveryServerRendererMap *RendererMap;
00177 
00178   int ClientWindowPosition[2];
00179   int ClientWindowSize[2];
00180   int ClientRequestedImageSize[2];
00181   int ClientGUISize[2];
00182 
00183   int AnnotationLayer;
00184 
00185   int ImageResized;
00186 
00187   vtkUnsignedCharArray *SendImageBuffer;
00188 
00189 private:
00190   vtkPVDesktopDeliveryServer(const vtkPVDesktopDeliveryServer &); //Not implemented
00191   void operator=(const vtkPVDesktopDeliveryServer &);    //Not implemented
00192 };
00193 
00194 #endif
00195 

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