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

Graphics/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 =========================================================================*/
00052 #ifndef __vtkGeometryFilter_h
00053 #define __vtkGeometryFilter_h
00054 
00055 #include "vtkDataSetToPolyDataFilter.h"
00056 
00057 class vtkPointLocator;
00058 
00059 class VTK_GRAPHICS_EXPORT vtkGeometryFilter : public vtkDataSetToPolyDataFilter
00060 {
00061 public:
00062   static vtkGeometryFilter *New();
00063   vtkTypeRevisionMacro(vtkGeometryFilter,vtkDataSetToPolyDataFilter);
00064   void PrintSelf(ostream& os, vtkIndent indent);
00065 
00067 
00068   vtkSetMacro(PointClipping,int);
00069   vtkGetMacro(PointClipping,int);
00070   vtkBooleanMacro(PointClipping,int);
00072 
00074 
00075   vtkSetMacro(CellClipping,int);
00076   vtkGetMacro(CellClipping,int);
00077   vtkBooleanMacro(CellClipping,int);
00079 
00081 
00082   vtkSetMacro(ExtentClipping,int);
00083   vtkGetMacro(ExtentClipping,int);
00084   vtkBooleanMacro(ExtentClipping,int);
00086 
00088 
00089   vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID);
00090   vtkGetMacro(PointMinimum,vtkIdType);
00092 
00094 
00095   vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID);
00096   vtkGetMacro(PointMaximum,vtkIdType);
00098 
00100 
00101   vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID);
00102   vtkGetMacro(CellMinimum,vtkIdType);
00104 
00106 
00107   vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID);
00108   vtkGetMacro(CellMaximum,vtkIdType);
00110 
00112 
00114   void SetExtent(double xMin, double xMax, double yMin, double yMax, 
00115                  double zMin, double zMax);
00117 
00119 
00121   void SetExtent(double extent[6]);
00122   double *GetExtent() { return this->Extent;};
00124 
00126 
00129   vtkSetMacro(Merging,int);
00130   vtkGetMacro(Merging,int);
00131   vtkBooleanMacro(Merging,int);
00133 
00135 
00137   void SetLocator(vtkPointLocator *locator);
00138   vtkGetObjectMacro(Locator,vtkPointLocator);
00140 
00142   void CreateDefaultLocator();
00143 
00145   unsigned long GetMTime();
00146 
00147 protected:
00148   vtkGeometryFilter();
00149   ~vtkGeometryFilter();
00150 
00151   void Execute();
00152   void PolyDataExecute(); //special cases for performance
00153   void UnstructuredGridExecute();
00154   void StructuredGridExecute();
00155   void ComputeInputUpdateExtents(vtkDataObject *output);
00156   void ExecuteInformation();
00157 
00158   vtkIdType PointMaximum;
00159   vtkIdType PointMinimum;
00160   vtkIdType CellMinimum;
00161   vtkIdType CellMaximum;
00162   double Extent[6];
00163   int PointClipping;
00164   int CellClipping;
00165   int ExtentClipping;
00166 
00167   int Merging;
00168   vtkPointLocator *Locator;
00169 private:
00170   vtkGeometryFilter(const vtkGeometryFilter&);  // Not implemented.
00171   void operator=(const vtkGeometryFilter&);  // Not implemented.
00172 };
00173 
00174 #endif
00175 
00176