Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Rendering/vtkFrustumCoverageCuller.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkFrustumCoverageCuller.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00050 #ifndef __vtkFrustumCoverageCuller_h
00051 #define __vtkFrustumCoverageCuller_h
00052 
00053 #include "vtkCuller.h"
00054 
00055 #define VTK_CULLER_SORT_NONE          0
00056 #define VTK_CULLER_SORT_FRONT_TO_BACK 1
00057 #define VTK_CULLER_SORT_BACK_TO_FRONT 2
00058 
00059 class vtkProp;
00060 class vtkRenderer;
00061 
00062 class VTK_RENDERING_EXPORT vtkFrustumCoverageCuller : public vtkCuller
00063 {
00064 public:
00065   static vtkFrustumCoverageCuller *New();
00066   vtkTypeRevisionMacro(vtkFrustumCoverageCuller,vtkCuller);
00067   void PrintSelf(ostream& os,vtkIndent indent);
00068 
00070 
00072   vtkSetMacro( MinimumCoverage, float );
00073   vtkGetMacro( MinimumCoverage, float );
00075 
00077 
00079   vtkSetMacro( MaximumCoverage, float );
00080   vtkGetMacro( MaximumCoverage, float );
00082 
00084 
00086   vtkSetClampMacro( SortingStyle, int,
00087         VTK_CULLER_SORT_NONE, VTK_CULLER_SORT_BACK_TO_FRONT );
00088   vtkGetMacro(SortingStyle,int);
00089   void SetSortingStyleToNone()
00090         {this->SetSortingStyle(VTK_CULLER_SORT_NONE);};
00091   void SetSortingStyleToBackToFront()
00092     {this->SetSortingStyle(VTK_CULLER_SORT_BACK_TO_FRONT);};
00093   void SetSortingStyleToFrontToBack()
00094     {this->SetSortingStyle(VTK_CULLER_SORT_FRONT_TO_BACK);};
00095   const char *GetSortingStyleAsString(void);
00097 
00098 //BTX
00100   /*! WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE
00101       THESE METHODS OUTSIDE OF THE RENDERING PROCESS Perform the cull
00102       operation This method should only be called by vtkRenderer as part of
00103       the render process */
00104   float Cull( vtkRenderer *ren, vtkProp **propList,
00105               int& listLength, int& initialized );
00107 //ETX
00108 
00109 protected:
00110   vtkFrustumCoverageCuller();
00111   ~vtkFrustumCoverageCuller() {};
00112 
00113   float        MinimumCoverage;
00114   float        MaximumCoverage;
00115   int          SortingStyle;
00116 private:
00117   vtkFrustumCoverageCuller(const vtkFrustumCoverageCuller&);  // Not implemented.
00118   void operator=(const vtkFrustumCoverageCuller&);  // Not implemented.
00119 };
00120 
00121                                          
00122 #endif