VTK
dox/Rendering/Core/vtkFrustumCoverageCuller.h
Go to the documentation of this file.
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