00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034 #ifndef __vtkFrustumCoverageCuller_h
00035 #define __vtkFrustumCoverageCuller_h
00036
00037 #include "vtkCuller.h"
00038
00039 #define VTK_CULLER_SORT_NONE 0
00040 #define VTK_CULLER_SORT_FRONT_TO_BACK 1
00041 #define VTK_CULLER_SORT_BACK_TO_FRONT 2
00042
00043 class vtkProp;
00044 class vtkRenderer;
00045
00046 class VTK_RENDERING_EXPORT vtkFrustumCoverageCuller : public vtkCuller
00047 {
00048 public:
00049 static vtkFrustumCoverageCuller *New();
00050 vtkTypeRevisionMacro(vtkFrustumCoverageCuller,vtkCuller);
00051 void PrintSelf(ostream& os,vtkIndent indent);
00052
00054
00056 vtkSetMacro( MinimumCoverage, double );
00057 vtkGetMacro( MinimumCoverage, double );
00059
00061
00063 vtkSetMacro( MaximumCoverage, double );
00064 vtkGetMacro( MaximumCoverage, double );
00066
00068
00070 vtkSetClampMacro( SortingStyle, int,
00071 VTK_CULLER_SORT_NONE, VTK_CULLER_SORT_BACK_TO_FRONT );
00072 vtkGetMacro(SortingStyle,int);
00073 void SetSortingStyleToNone()
00074 {this->SetSortingStyle(VTK_CULLER_SORT_NONE);};
00075 void SetSortingStyleToBackToFront()
00076 {this->SetSortingStyle(VTK_CULLER_SORT_BACK_TO_FRONT);};
00077 void SetSortingStyleToFrontToBack()
00078 {this->SetSortingStyle(VTK_CULLER_SORT_FRONT_TO_BACK);};
00079 const char *GetSortingStyleAsString(void);
00081
00082
00084
00088 double Cull( vtkRenderer *ren, vtkProp **propList,
00089 int& listLength, int& initialized );
00091
00092
00093 protected:
00094 vtkFrustumCoverageCuller();
00095 ~vtkFrustumCoverageCuller() {};
00096
00097 double MinimumCoverage;
00098 double MaximumCoverage;
00099 int SortingStyle;
00100 private:
00101 vtkFrustumCoverageCuller(const vtkFrustumCoverageCuller&);
00102 void operator=(const vtkFrustumCoverageCuller&);
00103 };
00104
00105
00106 #endif