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
00062 #ifndef __vtkFrustumCoverageCuller_h
00063 #define __vtkFrustumCoverageCuller_h
00064
00065 #include "vtkCuller.h"
00066
00067 #define VTK_CULLER_SORT_NONE 0
00068 #define VTK_CULLER_SORT_FRONT_TO_BACK 1
00069 #define VTK_CULLER_SORT_BACK_TO_FRONT 2
00070
00071 class vtkProp;
00072 class vtkRenderer;
00073
00074 class VTK_EXPORT vtkFrustumCoverageCuller : public vtkCuller
00075 {
00076 public:
00077 static vtkFrustumCoverageCuller *New();
00078 vtkTypeMacro(vtkFrustumCoverageCuller,vtkCuller);
00079 void PrintSelf(ostream& os,vtkIndent indent);
00080
00083 vtkSetMacro( MinimumCoverage, float );
00084 vtkGetMacro( MinimumCoverage, float );
00085
00088 vtkSetMacro( MaximumCoverage, float );
00089 vtkGetMacro( MaximumCoverage, float );
00090
00093 vtkSetClampMacro( SortingStyle, int,
00094 VTK_CULLER_SORT_NONE, VTK_CULLER_SORT_BACK_TO_FRONT );
00095 vtkGetMacro(SortingStyle,int);
00096 void SetSortingStyleToNone()
00097 {this->SetSortingStyle(VTK_CULLER_SORT_NONE);};
00098 void SetSortingStyleToBackToFront()
00099 {this->SetSortingStyle(VTK_CULLER_SORT_BACK_TO_FRONT);};
00100 void SetSortingStyleToFrontToBack()
00101 {this->SetSortingStyle(VTK_CULLER_SORT_FRONT_TO_BACK);};
00102 const char *GetSortingStyleAsString(void);
00103
00104
00109 float Cull( vtkRenderer *ren, vtkProp **propList,
00110 int& listLength, int& initialized );
00111
00112
00113 protected:
00114 vtkFrustumCoverageCuller();
00115 ~vtkFrustumCoverageCuller() {};
00116 vtkFrustumCoverageCuller(const vtkFrustumCoverageCuller&) {};
00117 void operator=(const vtkFrustumCoverageCuller&) {};
00118
00119 float MinimumCoverage;
00120 float MaximumCoverage;
00121 int SortingStyle;
00122 };
00123
00124
00125 #endif