00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkSMCompositeRenderModuleProxy_h
00026 #define __vtkSMCompositeRenderModuleProxy_h
00027
00028 #include "vtkSMLODRenderModuleProxy.h"
00029
00030
00031 class vtkSMCompositeDisplayProxy;
00032 class vtkSMDisplayProxy;
00033
00034 class VTK_EXPORT vtkSMCompositeRenderModuleProxy : public vtkSMLODRenderModuleProxy
00035 {
00036 public:
00037 static vtkSMCompositeRenderModuleProxy* New();
00038 vtkTypeRevisionMacro(vtkSMCompositeRenderModuleProxy, vtkSMLODRenderModuleProxy);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042
00044 vtkSetMacro(CompositeThreshold, double);
00045 vtkGetMacro(CompositeThreshold, double);
00047
00049
00051 vtkSetMacro(ReductionFactor, int);
00052 vtkGetMacro(ReductionFactor, int);
00054
00056
00060 vtkSetMacro(SquirtLevel, int);
00061 vtkGetMacro(SquirtLevel, int);
00063
00066 virtual void InteractiveRender();
00067
00070 virtual void StillRender();
00071
00074 virtual double GetZBufferValue(int x, int y);
00075
00077 virtual int IsRenderLocal();
00078
00079 protected:
00080 vtkSMCompositeRenderModuleProxy();
00081 ~vtkSMCompositeRenderModuleProxy();
00082
00083 virtual void CreateVTKObjects(int numObjects);
00084
00085 void ComputeReductionFactor(int inReductionFactor);
00086 int ReductionFactor;
00087 int SquirtLevel;
00088
00089 int LocalRender;
00090
00091 int CollectionDecision;
00092 int LODCollectionDecision;
00093
00094 double CompositeThreshold;
00095
00096 vtkSMProxy* CompositeManagerProxy;
00097
00102 virtual void CreateCompositeManager() { };
00103
00106 virtual void InitializeCompositingPipeline();
00107
00108
00109
00110
00111 virtual int GetLocalRenderDecision(unsigned long totalMemory, int stillRender);
00112
00113
00114 void SetCollectionDecision(vtkSMCompositeDisplayProxy* pDisp, int decision);
00115
00116
00117 void SetLODCollectionDecision(vtkSMCompositeDisplayProxy* pDisp, int decision);
00118
00119
00120
00121 void SetImageReductionFactor(vtkSMProxy* compositor, int factor);
00122
00123
00124
00125 void SetSquirtLevel(vtkSMProxy* compositor, int level);
00126
00127
00128
00129 void SetUseCompositing(vtkSMProxy* p, int flag);
00130
00131 private:
00132 vtkSMCompositeRenderModuleProxy(const vtkSMCompositeRenderModuleProxy&);
00133 void operator=(const vtkSMCompositeRenderModuleProxy&);
00134 };
00135
00136 #endif
00137