VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGeometryFilter.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 =========================================================================*/ 00058 #ifndef __vtkGeometryFilter_h 00059 #define __vtkGeometryFilter_h 00060 00061 #include "vtkFiltersGeometryModule.h" // For export macro 00062 #include "vtkPolyDataAlgorithm.h" 00063 00064 class vtkIncrementalPointLocator; 00065 00066 class VTKFILTERSGEOMETRY_EXPORT vtkGeometryFilter : public vtkPolyDataAlgorithm 00067 { 00068 public: 00069 static vtkGeometryFilter *New(); 00070 vtkTypeMacro(vtkGeometryFilter,vtkPolyDataAlgorithm); 00071 void PrintSelf(ostream& os, vtkIndent indent); 00072 00074 00075 vtkSetMacro(PointClipping,int); 00076 vtkGetMacro(PointClipping,int); 00077 vtkBooleanMacro(PointClipping,int); 00079 00081 00082 vtkSetMacro(CellClipping,int); 00083 vtkGetMacro(CellClipping,int); 00084 vtkBooleanMacro(CellClipping,int); 00086 00088 00089 vtkSetMacro(ExtentClipping,int); 00090 vtkGetMacro(ExtentClipping,int); 00091 vtkBooleanMacro(ExtentClipping,int); 00093 00095 00096 vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_ID_MAX); 00097 vtkGetMacro(PointMinimum,vtkIdType); 00099 00101 00102 vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_ID_MAX); 00103 vtkGetMacro(PointMaximum,vtkIdType); 00105 00107 00108 vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_ID_MAX); 00109 vtkGetMacro(CellMinimum,vtkIdType); 00111 00113 00114 vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_ID_MAX); 00115 vtkGetMacro(CellMaximum,vtkIdType); 00117 00119 00121 void SetExtent(double xMin, double xMax, double yMin, double yMax, 00122 double zMin, double zMax); 00124 00126 00128 void SetExtent(double extent[6]); 00129 double *GetExtent() { return this->Extent;}; 00131 00133 00136 vtkSetMacro(Merging,int); 00137 vtkGetMacro(Merging,int); 00138 vtkBooleanMacro(Merging,int); 00140 00142 00144 void SetLocator(vtkIncrementalPointLocator *locator); 00145 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00147 00149 void CreateDefaultLocator(); 00150 00152 unsigned long GetMTime(); 00153 00154 protected: 00155 vtkGeometryFilter(); 00156 ~vtkGeometryFilter(); 00157 00158 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00159 virtual int FillInputPortInformation(int port, vtkInformation *info); 00160 00161 //special cases for performance 00162 void PolyDataExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00163 void UnstructuredGridExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00164 void StructuredGridExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00165 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00166 00167 vtkIdType PointMaximum; 00168 vtkIdType PointMinimum; 00169 vtkIdType CellMinimum; 00170 vtkIdType CellMaximum; 00171 double Extent[6]; 00172 int PointClipping; 00173 int CellClipping; 00174 int ExtentClipping; 00175 00176 int Merging; 00177 vtkIncrementalPointLocator *Locator; 00178 private: 00179 vtkGeometryFilter(const vtkGeometryFilter&); // Not implemented. 00180 void operator=(const vtkGeometryFilter&); // Not implemented. 00181 }; 00182 00183 #endif 00184 00185