00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00054 #ifndef _ssMultibeamRenderModule_h
00055 #define _ssMultibeamRenderModule_h
00056
00061 #include "vtkObject.h"
00062
00063 class ssMultibeamApplication;
00064 class ssMultibeamWindow;
00065 class vtkMultiProcessController;
00066 class vtkPVData;
00067 class vtkPVSource;
00068 class vtkPVSourceList;
00069 class vtkRenderer;
00070 class vtkRenderWindow;
00071 class vtkCollection;
00072 class vtkPVPartDisplay;
00073
00074 class VTK_EXPORT ssMultibeamRenderModule : public vtkObject
00075 {
00076
00077 public:
00078
00084 static ssMultibeamRenderModule* New();
00085
00086
00090
00091 vtkTypeRevisionMacro(ssMultibeamRenderModule, vtkObject);
00092
00093
00099 void PrintSelf(ostream& os, vtkIndent indent);
00100
00105 virtual void Application(ssMultibeamApplication *app);
00106
00111 ssMultibeamApplication *Application() const;
00112
00118 void ComputeVisiblePropBounds(double bounds[6]);
00119
00123 void AddPVSource(vtkPVSource *pvs);
00124 void RemovePVSource(vtkPVSource *pvs);
00125
00129 virtual void StillRender();
00130
00134 virtual void InteractiveRender();
00135
00136
00137
00138
00143 vtkRenderer *GetRenderer();
00144
00149 vtkRenderer *GetPlanRenderer() const;
00150
00155 vtkRenderer *GetAcrossRenderer() const;
00156
00161 vtkRenderer *GetAlongRenderer() const;
00162
00167 vtkRenderWindow *GetPlanRenderWindow() const;
00168
00173 vtkRenderWindow *GetAcrossRenderWindow() const;
00174
00179 vtkRenderWindow *GetAlongRenderWindow() const;
00180
00181
00182
00189 void SetBackgroundColor(float r, float g, float b);
00190
00195 virtual void SetBackgroundColor(float *c) {this->SetBackgroundColor(c[0],c[1],c[2]);}
00196
00203 vtkGetStringMacro(PlanRendererTclName);
00204
00211 vtkGetStringMacro(AcrossRendererTclName);
00212
00219 vtkGetStringMacro(AlongRendererTclName);
00220
00227 vtkGetStringMacro(PlanRenderWindowTclName);
00228
00235 vtkGetStringMacro(AcrossRenderWindowTclName);
00236
00243 vtkGetStringMacro(AlongRenderWindowTclName);
00244
00249 void SetUseTriangleStrips(int val);
00250
00255 void SetUseImmediateMode(int val);
00256
00262 void SetUseParallelProjection(int val);
00263
00268 vtkSetMacro(RenderInterruptsEnabled, int);
00269
00274 vtkGetMacro(RenderInterruptsEnabled, int);
00275
00276 vtkBooleanMacro(RenderInterruptsEnabled, int);
00277
00283 virtual float GetZBufferValue(int x, int y);
00284
00295 vtkSetMacro(TotalVisibleMemorySizeValid, int);
00296
00307 vtkGetMacro(TotalVisibleMemorySizeValid, int);
00308
00309
00310 protected:
00311
00312 ssMultibeamRenderModule();
00313 ~ssMultibeamRenderModule();
00314
00319 virtual void UpdateAllPVData();
00320
00321 ssMultibeamApplication *application;
00322 vtkRenderer* PlanRenderer;
00323 vtkRenderer* AcrossRenderer;
00324 vtkRenderer* AlongRenderer;
00325 vtkRenderWindow* PlanRenderWindow;
00326 vtkRenderWindow* AcrossRenderWindow;
00327 vtkRenderWindow* AlongRenderWindow;
00328
00329
00330 int TotalVisibleMemorySizeValid;
00331
00332 char *PlanRendererTclName;
00333 char *AcrossRendererTclName;
00334 char *AlongRendererTclName;
00335 vtkSetStringMacro(PlanRendererTclName);
00336 vtkSetStringMacro(AcrossRendererTclName);
00337 vtkSetStringMacro(AlongRendererTclName);
00338
00339 char *PlanRenderWindowTclName;
00340 char *AcrossRenderWindowTclName;
00341 char *AlongRenderWindowTclName;
00342
00347 vtkSetStringMacro(PlanRenderWindowTclName);
00348
00353 vtkSetStringMacro(AcrossRenderWindowTclName);
00354
00359 vtkSetStringMacro(AlongRenderWindowTclName);
00360
00361 double StillRenderTime;
00362 double InteractiveRenderTime;
00363
00364 int DisableRenderingFlag;
00365 int RenderInterruptsEnabled;
00366
00367 unsigned long ResetCameraClippingRangeTag;
00368
00369
00370 private:
00371
00372 ssMultibeamRenderModule(const ssMultibeamRenderModule&);
00373 void operator=(const ssMultibeamRenderModule&);
00374 };
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00405 #endif