VTK
dox/Filters/Geometry/vtkUnstructuredGridGeometryFilter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkUnstructuredGridGeometryFilter.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 =========================================================================*/
00043 #ifndef __vtkUnstructuredGridGeometryFilter_h
00044 #define __vtkUnstructuredGridGeometryFilter_h
00045 
00046 #include "vtkFiltersGeometryModule.h" // For export macro
00047 #include "vtkUnstructuredGridAlgorithm.h"
00048 
00049 class vtkIncrementalPointLocator;
00050 class vtkHashTableOfSurfels; // internal class
00051 
00052 class VTKFILTERSGEOMETRY_EXPORT vtkUnstructuredGridGeometryFilter : public vtkUnstructuredGridAlgorithm
00053 {
00054 public:
00055   static vtkUnstructuredGridGeometryFilter *New();
00056   vtkTypeMacro(vtkUnstructuredGridGeometryFilter,vtkUnstructuredGridAlgorithm);
00057   void PrintSelf(ostream& os, vtkIndent indent);
00058 
00060 
00061   vtkSetMacro(PointClipping,int);
00062   vtkGetMacro(PointClipping,int);
00063   vtkBooleanMacro(PointClipping,int);
00065 
00067 
00068   vtkSetMacro(CellClipping,int);
00069   vtkGetMacro(CellClipping,int);
00070   vtkBooleanMacro(CellClipping,int);
00072 
00074 
00075   vtkSetMacro(ExtentClipping,int);
00076   vtkGetMacro(ExtentClipping,int);
00077   vtkBooleanMacro(ExtentClipping,int);
00079 
00081 
00082   vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_ID_MAX);
00083   vtkGetMacro(PointMinimum,vtkIdType);
00085 
00087 
00088   vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_ID_MAX);
00089   vtkGetMacro(PointMaximum,vtkIdType);
00091 
00093 
00094   vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_ID_MAX);
00095   vtkGetMacro(CellMinimum,vtkIdType);
00097 
00099 
00100   vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_ID_MAX);
00101   vtkGetMacro(CellMaximum,vtkIdType);
00103 
00105 
00107   void SetExtent(double xMin, double xMax, double yMin, double yMax,
00108                  double zMin, double zMax);
00110 
00112 
00114   void SetExtent(double extent[6]);
00115   double *GetExtent() { return this->Extent;};
00117 
00119 
00122   vtkSetMacro(Merging,int);
00123   vtkGetMacro(Merging,int);
00124   vtkBooleanMacro(Merging,int);
00126 
00128 
00134   vtkSetMacro(PassThroughCellIds,int);
00135   vtkGetMacro(PassThroughCellIds,int);
00136   vtkBooleanMacro(PassThroughCellIds,int);
00137   vtkSetMacro(PassThroughPointIds,int);
00138   vtkGetMacro(PassThroughPointIds,int);
00139   vtkBooleanMacro(PassThroughPointIds,int);
00141 
00143 
00147   vtkSetStringMacro(OriginalCellIdsName);
00148   virtual const char *GetOriginalCellIdsName() {
00149     return (  this->OriginalCellIdsName
00150             ? this->OriginalCellIdsName : "vtkOriginalCellIds");
00151   }
00152   vtkSetStringMacro(OriginalPointIdsName);
00153   virtual const char *GetOriginalPointIdsName() {
00154     return (  this->OriginalPointIdsName
00155             ? this->OriginalPointIdsName : "vtkOriginalPointIds");
00156   }
00158 
00160 
00162   void SetLocator(vtkIncrementalPointLocator *locator);
00163   vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
00165 
00167   void CreateDefaultLocator();
00168 
00170   unsigned long GetMTime();
00171 
00172 protected:
00173   vtkUnstructuredGridGeometryFilter();
00174   ~vtkUnstructuredGridGeometryFilter();
00175 
00176   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00177   virtual int FillInputPortInformation(int port, vtkInformation *info);
00178 
00179   int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00180 
00181   vtkIdType PointMaximum;
00182   vtkIdType PointMinimum;
00183   vtkIdType CellMinimum;
00184   vtkIdType CellMaximum;
00185   double Extent[6];
00186   int PointClipping;
00187   int CellClipping;
00188   int ExtentClipping;
00189 
00190   int PassThroughCellIds;
00191   int PassThroughPointIds;
00192   char *OriginalCellIdsName;
00193   char *OriginalPointIdsName;
00194 
00195   int Merging;
00196   vtkIncrementalPointLocator *Locator;
00197 
00198   vtkHashTableOfSurfels *HashTable;
00199 
00200 private:
00201   vtkUnstructuredGridGeometryFilter(const vtkUnstructuredGridGeometryFilter&);  // Not implemented.
00202   void operator=(const vtkUnstructuredGridGeometryFilter&);  // Not implemented.
00203 };
00204 
00205 #endif