Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkGeometryFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkGeometryFilter.h,v $
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 =========================================================================*/
00065 #ifndef __vtkGeometryFilter_h
00066 #define __vtkGeometryFilter_h
00067 
00068 #include "vtkDataSetToPolyDataFilter.h"
00069 
00070 class vtkPointLocator;
00071 
00072 class VTK_GRAPHICS_EXPORT vtkGeometryFilter : public vtkDataSetToPolyDataFilter
00073 {
00074 public:
00075   static vtkGeometryFilter *New();
00076   vtkTypeRevisionMacro(vtkGeometryFilter,vtkDataSetToPolyDataFilter);
00077   void PrintSelf(ostream& os, vtkIndent indent);
00078 
00080 
00081   vtkSetMacro(PointClipping,int);
00082   vtkGetMacro(PointClipping,int);
00083   vtkBooleanMacro(PointClipping,int);
00085 
00087 
00088   vtkSetMacro(CellClipping,int);
00089   vtkGetMacro(CellClipping,int);
00090   vtkBooleanMacro(CellClipping,int);
00092 
00094 
00095   vtkSetMacro(ExtentClipping,int);
00096   vtkGetMacro(ExtentClipping,int);
00097   vtkBooleanMacro(ExtentClipping,int);
00099 
00101 
00102   vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID);
00103   vtkGetMacro(PointMinimum,vtkIdType);
00105 
00107 
00108   vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID);
00109   vtkGetMacro(PointMaximum,vtkIdType);
00111 
00113 
00114   vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID);
00115   vtkGetMacro(CellMinimum,vtkIdType);
00117 
00119 
00120   vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID);
00121   vtkGetMacro(CellMaximum,vtkIdType);
00123 
00125 
00127   void SetExtent(double xMin, double xMax, double yMin, double yMax, 
00128                  double zMin, double zMax);
00130 
00132 
00134   void SetExtent(double extent[6]);
00135   double *GetExtent() { return this->Extent;};
00137 
00139 
00142   vtkSetMacro(Merging,int);
00143   vtkGetMacro(Merging,int);
00144   vtkBooleanMacro(Merging,int);
00146 
00148 
00150   void SetLocator(vtkPointLocator *locator);
00151   vtkGetObjectMacro(Locator,vtkPointLocator);
00153 
00155   void CreateDefaultLocator();
00156 
00158   unsigned long GetMTime();
00159 
00160 protected:
00161   vtkGeometryFilter();
00162   ~vtkGeometryFilter();
00163 
00164   void Execute();
00165   void PolyDataExecute(); //special cases for performance
00166   void UnstructuredGridExecute();
00167   void StructuredGridExecute();
00168   void ComputeInputUpdateExtents(vtkDataObject *output);
00169   void ExecuteInformation();
00170 
00171   vtkIdType PointMaximum;
00172   vtkIdType PointMinimum;
00173   vtkIdType CellMinimum;
00174   vtkIdType CellMaximum;
00175   double Extent[6];
00176   int PointClipping;
00177   int CellClipping;
00178   int ExtentClipping;
00179 
00180   int Merging;
00181   vtkPointLocator *Locator;
00182 private:
00183   vtkGeometryFilter(const vtkGeometryFilter&);  // Not implemented.
00184   void operator=(const vtkGeometryFilter&);  // Not implemented.
00185 };
00186 
00187 #endif
00188 
00189