VTK
|
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