00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00023 #ifndef __vtkIceTRenderer_h
00024 #define __vtkIceTRenderer_h
00025
00026 #include "vtkOpenGLRenderer.h"
00027
00028 #include "vtkIceTRenderManager.h"
00029
00030 class vtkIceTContext;
00031
00032 class VTK_EXPORT vtkIceTRenderer : public vtkOpenGLRenderer
00033 {
00034 public:
00035 static vtkIceTRenderer *New();
00036 vtkTypeRevisionMacro(vtkIceTRenderer, vtkOpenGLRenderer);
00037 virtual void PrintSelf(ostream &os, vtkIndent indent);
00038
00040 virtual void DeviceRender();
00041
00043 void RenderWithoutCamera();
00044
00046
00049 vtkSetMacro(ComposeNextFrame, int);
00051
00054 virtual void Clear();
00055
00057 void StereoMidpoint();
00058
00059 double GetRenderTime();
00060 double GetImageProcessingTime();
00061 double GetBufferReadTime();
00062 double GetBufferWriteTime();
00063 double GetCompositeTime();
00064
00066
00068 vtkGetMacro(Strategy, int);
00069 vtkSetMacro(Strategy, int);
00070 void SetStrategyToDefault() {
00071 this->SetStrategy(vtkIceTRenderManager::DEFAULT);
00072 }
00073 void SetStrategyToReduce() {
00074 this->SetStrategy(vtkIceTRenderManager::REDUCE);
00075 }
00076 void SetStrategyToVtree() {
00077 this->SetStrategy(vtkIceTRenderManager::VTREE);
00078 }
00079 void SetStrategyToSplit() {
00080 this->SetStrategy(vtkIceTRenderManager::SPLIT);
00081 }
00082 void SetStrategyToSerial() {
00083 this->SetStrategy(vtkIceTRenderManager::SERIAL);
00084 }
00085 void SetStrategyToDirect() {
00086 this->SetStrategy(vtkIceTRenderManager::DIRECT);
00087 }
00089
00091
00094 vtkGetMacro(ComposeOperation, int);
00095 vtkSetMacro(ComposeOperation, int);
00096
00097
00098
00099
00100 void SetComposeOperationToClosest() {
00101 this->SetComposeOperation(vtkIceTRenderManager::ComposeOperationClosest);
00102 }
00103
00104
00105
00106
00107 void SetComposeOperationToOver() {
00108 this->SetComposeOperation(vtkIceTRenderManager::ComposeOperationOver);
00109 }
00111
00113
00123 vtkGetObjectMacro(SortingKdTree, vtkPKdTree);
00124 virtual void SetSortingKdTree(vtkPKdTree *tree);
00126
00128
00136 vtkGetObjectMacro(DataReplicationGroup, vtkIntArray);
00137 virtual void SetDataReplicationGroup(vtkIntArray *group);
00139
00145 virtual void SetDataReplicationGroupColor(int color);
00146
00148
00149 vtkGetObjectMacro(Context, vtkIceTContext);
00151
00153 virtual void SetController(vtkMultiProcessController *controller);
00154
00156
00158 virtual void GetTiledSizeAndOrigin(int *width, int *height,
00159 int *lowerLeftX, int *lowerLeftY);
00161
00163
00164 vtkSetVector4Macro(PhysicalViewport, int);
00165 vtkGetVector4Macro(PhysicalViewport, int);
00167
00168 protected:
00169 vtkIceTRenderer();
00170 virtual ~vtkIceTRenderer();
00171
00172 virtual int UpdateCamera();
00173 virtual int UpdateGeometry();
00174
00175 int ComposeNextFrame;
00176 int InIceTRender;
00177
00178 int Strategy;
00179 int ComposeOperation;
00180
00181 vtkIceTContext *Context;
00182
00183 vtkPKdTree *SortingKdTree;
00184
00185 vtkIntArray *DataReplicationGroup;
00186
00187 int PhysicalViewport[4];
00188
00189 vtkIceTRenderer(const vtkIceTRenderer&);
00190 void operator=(const vtkIceTRenderer&);
00191 };
00192
00193 #endif //__vtkIceTRenderer_h