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 
00004   Program:   Visualization Toolkit
00005   Module:    $RCSfile: vtkFrustumCoverageCuller.h,v $
00006   Language:  C++
00007 
00008 
00009 Copyright (c) 1993-2001 Ken Martin, Will Schroeder, Bill Lorensen 
00010 All rights reserved.
00011 
00012 Redistribution and use in source and binary forms, with or without
00013 modification, are permitted provided that the following conditions are met:
00014 
00015  * Redistributions of source code must retain the above copyright notice,
00016    this list of conditions and the following disclaimer.
00017 
00018  * Redistributions in binary form must reproduce the above copyright notice,
00019    this list of conditions and the following disclaimer in the documentation
00020    and/or other materials provided with the distribution.
00021 
00022  * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names
00023    of any contributors may be used to endorse or promote products derived
00024    from this software without specific prior written permission.
00025 
00026  * Modified source versions must be plainly marked as such, and must not be
00027    misrepresented as being the original software.
00028 
00029 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00030 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00031 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00032 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
00033 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00034 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00035 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00036 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00037 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00038 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039 
00040 =========================================================================*/
00063 #ifndef __vtkFrustumCoverageCuller_h
00064 #define __vtkFrustumCoverageCuller_h
00065 
00066 #include "vtkCuller.h"
00067 
00068 #define VTK_CULLER_SORT_NONE          0
00069 #define VTK_CULLER_SORT_FRONT_TO_BACK 1
00070 #define VTK_CULLER_SORT_BACK_TO_FRONT 2
00071 
00072 class vtkProp;
00073 class vtkRenderer;
00074 
00075 class VTK_RENDERING_EXPORT vtkFrustumCoverageCuller : public vtkCuller
00076 {
00077 public:
00078   static vtkFrustumCoverageCuller *New();
00079   vtkTypeMacro(vtkFrustumCoverageCuller,vtkCuller);
00080   void PrintSelf(ostream& os,vtkIndent indent);
00081 
00083 
00085   vtkSetMacro( MinimumCoverage, float );
00086   vtkGetMacro( MinimumCoverage, float );
00088 
00090 
00092   vtkSetMacro( MaximumCoverage, float );
00093   vtkGetMacro( MaximumCoverage, float );
00095 
00097 
00099   vtkSetClampMacro( SortingStyle, int,
00100         VTK_CULLER_SORT_NONE, VTK_CULLER_SORT_BACK_TO_FRONT );
00101   vtkGetMacro(SortingStyle,int);
00102   void SetSortingStyleToNone()
00103         {this->SetSortingStyle(VTK_CULLER_SORT_NONE);};
00104   void SetSortingStyleToBackToFront()
00105     {this->SetSortingStyle(VTK_CULLER_SORT_BACK_TO_FRONT);};
00106   void SetSortingStyleToFrontToBack()
00107     {this->SetSortingStyle(VTK_CULLER_SORT_FRONT_TO_BACK);};
00108   const char *GetSortingStyleAsString(void);
00110 
00111 //BTX
00113   /*! WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE
00114       THESE METHODS OUTSIDE OF THE RENDERING PROCESS Perform the cull
00115       operation This method should only be called by vtkRenderer as part of
00116       the render process */
00117   float Cull( vtkRenderer *ren, vtkProp **propList,
00118               int& listLength, int& initialized );
00120 //ETX
00121 
00122 protected:
00123   vtkFrustumCoverageCuller();
00124   ~vtkFrustumCoverageCuller() {};
00125 
00126   float        MinimumCoverage;
00127   float        MaximumCoverage;
00128   int          SortingStyle;
00129 private:
00130   vtkFrustumCoverageCuller(const vtkFrustumCoverageCuller&);  // Not implemented.
00131   void operator=(const vtkFrustumCoverageCuller&);  // Not implemented.
00132 };
00133 
00134                                          
00135 #endif

Generated on Thu Mar 28 14:19:31 2002 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001