VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGenericGeometryFilter.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 =========================================================================*/ 00049 #ifndef __vtkGenericGeometryFilter_h 00050 #define __vtkGenericGeometryFilter_h 00051 00052 #include "vtkFiltersGenericModule.h" // For export macro 00053 #include "vtkPolyDataAlgorithm.h" 00054 00055 class vtkIncrementalPointLocator; 00056 class vtkPointData; 00057 00058 class VTKFILTERSGENERIC_EXPORT vtkGenericGeometryFilter : public vtkPolyDataAlgorithm 00059 { 00060 public: 00061 static vtkGenericGeometryFilter *New(); 00062 vtkTypeMacro(vtkGenericGeometryFilter,vtkPolyDataAlgorithm); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 00066 00067 vtkSetMacro(PointClipping,int); 00068 vtkGetMacro(PointClipping,int); 00069 vtkBooleanMacro(PointClipping,int); 00071 00073 00074 vtkSetMacro(CellClipping,int); 00075 vtkGetMacro(CellClipping,int); 00076 vtkBooleanMacro(CellClipping,int); 00078 00080 00081 vtkSetMacro(ExtentClipping,int); 00082 vtkGetMacro(ExtentClipping,int); 00083 vtkBooleanMacro(ExtentClipping,int); 00085 00087 00088 vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_ID_MAX); 00089 vtkGetMacro(PointMinimum,vtkIdType); 00091 00093 00094 vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_ID_MAX); 00095 vtkGetMacro(PointMaximum,vtkIdType); 00097 00099 00100 vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_ID_MAX); 00101 vtkGetMacro(CellMinimum,vtkIdType); 00103 00105 00106 vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_ID_MAX); 00107 vtkGetMacro(CellMaximum,vtkIdType); 00109 00111 00113 void SetExtent(double xMin, double xMax, double yMin, double yMax, 00114 double zMin, double zMax); 00116 00118 00120 void SetExtent(double extent[6]); 00121 double *GetExtent() { return this->Extent;}; 00123 00125 00128 vtkSetMacro(Merging,int); 00129 vtkGetMacro(Merging,int); 00130 vtkBooleanMacro(Merging,int); 00132 00134 00136 void SetLocator(vtkIncrementalPointLocator *locator); 00137 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00139 00141 void CreateDefaultLocator(); 00142 00144 unsigned long GetMTime(); 00145 00147 00151 vtkSetMacro(PassThroughCellIds,int); 00152 vtkGetMacro(PassThroughCellIds,int); 00153 vtkBooleanMacro(PassThroughCellIds,int); 00155 00156 protected: 00157 vtkGenericGeometryFilter(); 00158 ~vtkGenericGeometryFilter(); 00159 00160 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00161 void PolyDataExecute(); //special cases for performance 00162 void UnstructuredGridExecute(); 00163 void StructuredGridExecute(); 00164 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00165 int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00166 00167 int FillInputPortInformation(int, vtkInformation*); 00168 00169 vtkIdType PointMaximum; 00170 vtkIdType PointMinimum; 00171 vtkIdType CellMinimum; 00172 vtkIdType CellMaximum; 00173 double Extent[6]; 00174 int PointClipping; 00175 int CellClipping; 00176 int ExtentClipping; 00177 00178 int Merging; 00179 vtkIncrementalPointLocator *Locator; 00180 00181 // Used internal by vtkGenericAdaptorCell::Tessellate() 00182 vtkPointData *InternalPD; 00183 00184 int PassThroughCellIds; 00185 00186 private: 00187 vtkGenericGeometryFilter(const vtkGenericGeometryFilter&); // Not implemented. 00188 void operator=(const vtkGenericGeometryFilter&); // Not implemented. 00189 }; 00190 00191 #endif 00192 00193