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 "vtkPolyDataAlgorithm.h" 00053 00054 class vtkIncrementalPointLocator; 00055 class vtkPointData; 00056 00057 class VTK_GENERIC_FILTERING_EXPORT vtkGenericGeometryFilter : public vtkPolyDataAlgorithm 00058 { 00059 public: 00060 static vtkGenericGeometryFilter *New(); 00061 vtkTypeMacro(vtkGenericGeometryFilter,vtkPolyDataAlgorithm); 00062 void PrintSelf(ostream& os, vtkIndent indent); 00063 00065 00066 vtkSetMacro(PointClipping,int); 00067 vtkGetMacro(PointClipping,int); 00068 vtkBooleanMacro(PointClipping,int); 00070 00072 00073 vtkSetMacro(CellClipping,int); 00074 vtkGetMacro(CellClipping,int); 00075 vtkBooleanMacro(CellClipping,int); 00077 00079 00080 vtkSetMacro(ExtentClipping,int); 00081 vtkGetMacro(ExtentClipping,int); 00082 vtkBooleanMacro(ExtentClipping,int); 00084 00086 00087 vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID); 00088 vtkGetMacro(PointMinimum,vtkIdType); 00090 00092 00093 vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID); 00094 vtkGetMacro(PointMaximum,vtkIdType); 00096 00098 00099 vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID); 00100 vtkGetMacro(CellMinimum,vtkIdType); 00102 00104 00105 vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID); 00106 vtkGetMacro(CellMaximum,vtkIdType); 00108 00110 00112 void SetExtent(double xMin, double xMax, double yMin, double yMax, 00113 double zMin, double zMax); 00115 00117 00119 void SetExtent(double extent[6]); 00120 double *GetExtent() { return this->Extent;}; 00122 00124 00127 vtkSetMacro(Merging,int); 00128 vtkGetMacro(Merging,int); 00129 vtkBooleanMacro(Merging,int); 00131 00133 00135 void SetLocator(vtkIncrementalPointLocator *locator); 00136 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00138 00140 void CreateDefaultLocator(); 00141 00143 unsigned long GetMTime(); 00144 00146 00150 vtkSetMacro(PassThroughCellIds,int); 00151 vtkGetMacro(PassThroughCellIds,int); 00152 vtkBooleanMacro(PassThroughCellIds,int); 00154 00155 protected: 00156 vtkGenericGeometryFilter(); 00157 ~vtkGenericGeometryFilter(); 00158 00159 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00160 void PolyDataExecute(); //special cases for performance 00161 void UnstructuredGridExecute(); 00162 void StructuredGridExecute(); 00163 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00164 int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00165 00166 int FillInputPortInformation(int, vtkInformation*); 00167 00168 vtkIdType PointMaximum; 00169 vtkIdType PointMinimum; 00170 vtkIdType CellMinimum; 00171 vtkIdType CellMaximum; 00172 double Extent[6]; 00173 int PointClipping; 00174 int CellClipping; 00175 int ExtentClipping; 00176 00177 int Merging; 00178 vtkIncrementalPointLocator *Locator; 00179 00180 // Used internal by vtkGenericAdaptorCell::Tessellate() 00181 vtkPointData *InternalPD; 00182 00183 int PassThroughCellIds; 00184 00185 private: 00186 vtkGenericGeometryFilter(const vtkGenericGeometryFilter&); // Not implemented. 00187 void operator=(const vtkGenericGeometryFilter&); // Not implemented. 00188 }; 00189 00190 #endif 00191 00192