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

Servers/Filters/vtkCaveRenderManager.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkCaveRenderManager.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 =========================================================================*/
00032 #ifndef __vtkCaveRenderManager_h
00033 #define __vtkCaveRenderManager_h
00034 
00035 #include "vtkParallelRenderManager.h"
00036 
00037 class vtkRenderWindow;
00038 class vtkMultiProcessController;
00039 class vtkSocketController;
00040 class vtkRenderer;
00041 class vtkCamera;
00042 class vtkTiledDisplaySchedule;
00043 class vtkPVCompositeUtilities;
00044 class vtkFloatArray;
00045 class vtkUnsignedCharArray;
00046 class vtkPVCaveClientInfo;
00047 class vtkPVCompositeBuffer;
00048 
00049 class VTK_EXPORT vtkCaveRenderManager : public vtkParallelRenderManager
00050 {
00051 public:
00052   static vtkCaveRenderManager *New();
00053   vtkTypeRevisionMacro(vtkCaveRenderManager,vtkParallelRenderManager);
00054   void PrintSelf(ostream& os, vtkIndent indent);
00055 
00058   virtual void SetRenderWindow(vtkRenderWindow *renWin);
00059 
00061   virtual void ClientEndRender();
00062   
00065   virtual void InitializeRMIs();
00066   
00070   void SetController(vtkMultiProcessController* controller);
00071 
00073 
00074   void SetSocketController(vtkSocketController* controller);
00075   vtkGetObjectMacro(SocketController, vtkSocketController);
00077 
00078 //BTX
00079   enum Tags {
00080     ROOT_RENDER_RMI_TAG=12721,
00081     SATELLITE_RENDER_RMI_TAG=12722,
00082     INFO_TAG=22135,
00083     DEFINE_DISPLAY_RMI_TAG = 89843,
00084     DEFINE_DISPLAY_INFO_TAG = 89844
00085   };
00086 //ETX
00087 
00089 
00093   void DefineDisplay(int idx, double origin[3],
00094                      double x[3], double y[3]);
00095   void DefineDisplayRMI();
00097 
00099 
00101   vtkSetMacro(ClientFlag,int);
00102   vtkGetMacro(ClientFlag,int);
00104 
00106   float GetZBufferValue(int x, int y);
00107   
00109 
00110   void ClientStartRender();
00111   void RootStartRenderRMI(vtkPVCaveClientInfo *info);
00112   void SatelliteStartRenderRMI();
00114 
00115 protected:
00116   vtkCaveRenderManager();
00117   ~vtkCaveRenderManager();
00118 
00119   // Working toward general displays.
00120   void ComputeCamera(vtkPVCaveClientInfo *info, vtkCamera* cam);
00121 
00122   int ClientFlag;
00123   
00124   vtkSocketController* SocketController;
00125 
00126   void SetupCamera(int tileIdx, int reduction);
00127 
00128   unsigned long StartTag;
00129   unsigned long EndTag;
00130   
00131   void PreRenderProcessing() {}
00132   void PostRenderProcessing() {}
00133   void InternalSatelliteStartRender(vtkPVCaveClientInfo *info);
00134   
00135   // Definition of the display on this node.
00136   double DisplayOrigin[4];
00137   double DisplayX[4];
00138   double DisplayY[4];
00139 
00140 private:
00141   vtkCaveRenderManager(const vtkCaveRenderManager&); // Not implemented
00142   void operator=(const vtkCaveRenderManager&); // Not implemented
00143 };
00144 
00145 #endif

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