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 =========================================================================*/ 00052 #ifndef __vtkGeometryFilter_h 00053 #define __vtkGeometryFilter_h 00054 00055 #include "vtkPolyDataAlgorithm.h" 00056 00057 class vtkIncrementalPointLocator; 00058 00059 class VTK_GRAPHICS_EXPORT vtkGeometryFilter : public vtkPolyDataAlgorithm 00060 { 00061 public: 00062 static vtkGeometryFilter *New(); 00063 vtkTypeMacro(vtkGeometryFilter,vtkPolyDataAlgorithm); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00065 00067 00068 vtkSetMacro(PointClipping,int); 00069 vtkGetMacro(PointClipping,int); 00070 vtkBooleanMacro(PointClipping,int); 00072 00074 00075 vtkSetMacro(CellClipping,int); 00076 vtkGetMacro(CellClipping,int); 00077 vtkBooleanMacro(CellClipping,int); 00079 00081 00082 vtkSetMacro(ExtentClipping,int); 00083 vtkGetMacro(ExtentClipping,int); 00084 vtkBooleanMacro(ExtentClipping,int); 00086 00088 00089 vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID); 00090 vtkGetMacro(PointMinimum,vtkIdType); 00092 00094 00095 vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID); 00096 vtkGetMacro(PointMaximum,vtkIdType); 00098 00100 00101 vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID); 00102 vtkGetMacro(CellMinimum,vtkIdType); 00104 00106 00107 vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID); 00108 vtkGetMacro(CellMaximum,vtkIdType); 00110 00112 00114 void SetExtent(double xMin, double xMax, double yMin, double yMax, 00115 double zMin, double zMax); 00117 00119 00121 void SetExtent(double extent[6]); 00122 double *GetExtent() { return this->Extent;}; 00124 00126 00129 vtkSetMacro(Merging,int); 00130 vtkGetMacro(Merging,int); 00131 vtkBooleanMacro(Merging,int); 00133 00135 00137 void SetLocator(vtkIncrementalPointLocator *locator); 00138 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00140 00142 void CreateDefaultLocator(); 00143 00145 unsigned long GetMTime(); 00146 00147 protected: 00148 vtkGeometryFilter(); 00149 ~vtkGeometryFilter(); 00150 00151 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00152 virtual int FillInputPortInformation(int port, vtkInformation *info); 00153 00154 //special cases for performance 00155 void PolyDataExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00156 void UnstructuredGridExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00157 void StructuredGridExecute(vtkDataSet *, vtkPolyData *, vtkInformation *); 00158 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00159 00160 vtkIdType PointMaximum; 00161 vtkIdType PointMinimum; 00162 vtkIdType CellMinimum; 00163 vtkIdType CellMaximum; 00164 double Extent[6]; 00165 int PointClipping; 00166 int CellClipping; 00167 int ExtentClipping; 00168 00169 int Merging; 00170 vtkIncrementalPointLocator *Locator; 00171 private: 00172 vtkGeometryFilter(const vtkGeometryFilter&); // Not implemented. 00173 void operator=(const vtkGeometryFilter&); // Not implemented. 00174 }; 00175 00176 #endif 00177 00178