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