VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Rendering/Core/vtkSelectVisiblePoints.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkSelectVisiblePoints.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 =========================================================================*/
00050 #ifndef vtkSelectVisiblePoints_h
00051 #define vtkSelectVisiblePoints_h
00052 
00053 #include "vtkRenderingCoreModule.h" // For export macro
00054 #include "vtkPolyDataAlgorithm.h"
00055 
00056 class vtkRenderer;
00057 class vtkMatrix4x4;
00058 
00059 class VTKRENDERINGCORE_EXPORT vtkSelectVisiblePoints : public vtkPolyDataAlgorithm
00060 {
00061 public:
00062   vtkTypeMacro(vtkSelectVisiblePoints, vtkPolyDataAlgorithm);
00063   void PrintSelf(ostream& os, vtkIndent indent);
00064 
00067   static vtkSelectVisiblePoints *New();
00068 
00070 
00072   void SetRenderer(vtkRenderer* ren)
00073     {
00074       if (this->Renderer != ren)
00075         {
00076         this->Renderer = ren;
00077         this->Modified();
00078         }
00079     }
00080   vtkRenderer* GetRenderer()
00081     { return this->Renderer; }
00083 
00085 
00087   vtkSetMacro(SelectionWindow, int);
00088   vtkGetMacro(SelectionWindow, int);
00089   vtkBooleanMacro(SelectionWindow, int);
00091 
00093 
00095   vtkSetVector4Macro(Selection, int);
00096   vtkGetVectorMacro(Selection, int, 4);
00098 
00100 
00102   vtkSetMacro(SelectInvisible, int);
00103   vtkGetMacro(SelectInvisible, int);
00104   vtkBooleanMacro(SelectInvisible, int);
00106 
00108 
00111   vtkSetClampMacro(Tolerance, double,0.0, VTK_DOUBLE_MAX);
00112   vtkGetMacro(Tolerance, double);
00114 
00118   float * Initialize(bool getZbuff);
00119 
00122   bool IsPointOccluded(const double x[3], const float *zPtr);
00123 
00125   unsigned long GetMTime();
00126 
00127 protected:
00128   vtkSelectVisiblePoints();
00129   ~vtkSelectVisiblePoints();
00130 
00131   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00132   virtual int FillInputPortInformation(int port, vtkInformation *info);
00133 
00134   vtkRenderer *Renderer;
00135   vtkMatrix4x4 *CompositePerspectiveTransform;
00136 
00137   int SelectionWindow;
00138   int Selection[4];
00139   int InternalSelection[4];
00140   int SelectInvisible;
00141   double Tolerance;
00142 
00143 private:
00144   vtkSelectVisiblePoints(const vtkSelectVisiblePoints&);  // Not implemented.
00145   void operator=(const vtkSelectVisiblePoints&);  // Not implemented.
00146 };
00147 
00148 #endif