VTK
dox/Filters/Generic/vtkGenericGeometryFilter.h
Go to the documentation of this file.
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