VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkFrustumCoverageCuller.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00037 #ifndef __vtkFrustumCoverageCuller_h 00038 #define __vtkFrustumCoverageCuller_h 00039 00040 #include "vtkRenderingCoreModule.h" // For export macro 00041 #include "vtkCuller.h" 00042 00043 #define VTK_CULLER_SORT_NONE 0 00044 #define VTK_CULLER_SORT_FRONT_TO_BACK 1 00045 #define VTK_CULLER_SORT_BACK_TO_FRONT 2 00046 00047 class vtkProp; 00048 class vtkRenderer; 00049 00050 class VTKRENDERINGCORE_EXPORT vtkFrustumCoverageCuller : public vtkCuller 00051 { 00052 public: 00053 static vtkFrustumCoverageCuller *New(); 00054 vtkTypeMacro(vtkFrustumCoverageCuller,vtkCuller); 00055 void PrintSelf(ostream& os,vtkIndent indent); 00056 00058 00060 vtkSetMacro( MinimumCoverage, double ); 00061 vtkGetMacro( MinimumCoverage, double ); 00063 00065 00067 vtkSetMacro( MaximumCoverage, double ); 00068 vtkGetMacro( MaximumCoverage, double ); 00070 00072 00074 vtkSetClampMacro( SortingStyle, int, 00075 VTK_CULLER_SORT_NONE, VTK_CULLER_SORT_BACK_TO_FRONT ); 00076 vtkGetMacro(SortingStyle,int); 00077 void SetSortingStyleToNone() 00078 {this->SetSortingStyle(VTK_CULLER_SORT_NONE);}; 00079 void SetSortingStyleToBackToFront() 00080 {this->SetSortingStyle(VTK_CULLER_SORT_BACK_TO_FRONT);}; 00081 void SetSortingStyleToFrontToBack() 00082 {this->SetSortingStyle(VTK_CULLER_SORT_FRONT_TO_BACK);}; 00083 const char *GetSortingStyleAsString(void); 00085 00086 //BTX 00088 00092 double Cull( vtkRenderer *ren, vtkProp **propList, 00093 int& listLength, int& initialized ); 00094 //ETX 00096 00097 protected: 00098 vtkFrustumCoverageCuller(); 00099 ~vtkFrustumCoverageCuller() {} 00100 00101 double MinimumCoverage; 00102 double MaximumCoverage; 00103 int SortingStyle; 00104 private: 00105 vtkFrustumCoverageCuller(const vtkFrustumCoverageCuller&); // Not implemented. 00106 void operator=(const vtkFrustumCoverageCuller&); // Not implemented. 00107 }; 00108 00109 00110 #endif