00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00024 #ifndef __vtkSMLODRenderModuleProxy_h
00025 #define __vtkSMLODRenderModuleProxy_h
00026
00027 #include "vtkSMSimpleRenderModuleProxy.h"
00028
00029
00030 class vtkSMDisplayProxy;
00031 class vtkSMLODRenderModuleProxyObserver;
00032 class VTK_EXPORT vtkSMLODRenderModuleProxy : public vtkSMSimpleRenderModuleProxy
00033 {
00034 public:
00035 static vtkSMLODRenderModuleProxy* New();
00036 vtkTypeRevisionMacro(vtkSMLODRenderModuleProxy, vtkSMSimpleRenderModuleProxy);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00043 virtual void AddDisplay(vtkSMDisplayProxy* disp);
00044 virtual void RemoveDisplay(vtkSMDisplayProxy* disp);
00046
00049 virtual vtkSMDisplayProxy* CreateDisplayProxy();
00050
00052
00053 vtkSetMacro(LODThreshold, double);
00054 vtkGetMacro(LODThreshold, double);
00056
00058
00059 void SetLODResolution(int);
00060 vtkGetMacro(LODResolution, int);
00062
00063 virtual void InteractiveRender();
00064 protected:
00065 vtkSMLODRenderModuleProxy();
00066 ~vtkSMLODRenderModuleProxy();
00067
00068 vtkSMProxy* CollectProxy;
00069 vtkSMProxy* LODCollectProxy;
00070 double LODThreshold;
00071 int LODResolution;
00072
00073 int TotalVisibleGeometryMemorySizeValid;
00074 unsigned long TotalVisibleGeometryMemorySize;
00075 vtkSetMacro(TotalVisibleGeometryMemorySizeValid, int);
00076
00077 int TotalVisibleLODGeometryMemorySizeValid;
00078 vtkSetMacro(TotalVisibleLODGeometryMemorySizeValid, int);
00079 unsigned long TotalVisibleLODGeometryMemorySize;
00080
00081 void ComputeTotalVisibleMemorySize();
00082 unsigned long GetTotalVisibleGeometryMemorySize();
00083 unsigned long GetTotalVisibleLODGeometryMemorySize();
00084
00086
00088 int GetUseLODDecision();
00089
00090 friend class vtkSMLODRenderModuleProxyObserver;
00091 vtkSMLODRenderModuleProxyObserver *Observer;
00092
00094 private:
00095 vtkSMLODRenderModuleProxy(const vtkSMLODRenderModuleProxy&);
00096 void operator=(const vtkSMLODRenderModuleProxy&);
00097 };
00098
00099
00100
00101 #endif
00102