VTK
dox/Graphics/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 "vtkUnstructuredGridAlgorithm.h"
00047 
00048 class vtkIncrementalPointLocator;
00049 class vtkHashTableOfSurfels; // internal class
00050 
00051 class VTK_GRAPHICS_EXPORT vtkUnstructuredGridGeometryFilter : public vtkUnstructuredGridAlgorithm
00052 {
00053 public:
00054   static vtkUnstructuredGridGeometryFilter *New();
00055   vtkTypeMacro(vtkUnstructuredGridGeometryFilter,vtkUnstructuredGridAlgorithm);
00056   void PrintSelf(ostream& os, vtkIndent indent);
00057 
00059 
00060   vtkSetMacro(PointClipping,int);
00061   vtkGetMacro(PointClipping,int);
00062   vtkBooleanMacro(PointClipping,int);
00064 
00066 
00067   vtkSetMacro(CellClipping,int);
00068   vtkGetMacro(CellClipping,int);
00069   vtkBooleanMacro(CellClipping,int);
00071 
00073 
00074   vtkSetMacro(ExtentClipping,int);
00075   vtkGetMacro(ExtentClipping,int);
00076   vtkBooleanMacro(ExtentClipping,int);
00078 
00080 
00081   vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID);
00082   vtkGetMacro(PointMinimum,vtkIdType);
00084 
00086 
00087   vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID);
00088   vtkGetMacro(PointMaximum,vtkIdType);
00090 
00092 
00093   vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID);
00094   vtkGetMacro(CellMinimum,vtkIdType);
00096 
00098 
00099   vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID);
00100   vtkGetMacro(CellMaximum,vtkIdType);
00102 
00104 
00106   void SetExtent(double xMin, double xMax, double yMin, double yMax, 
00107                  double zMin, double zMax);
00109 
00111 
00113   void SetExtent(double extent[6]);
00114   double *GetExtent() { return this->Extent;};
00116 
00118 
00121   vtkSetMacro(Merging,int);
00122   vtkGetMacro(Merging,int);
00123   vtkBooleanMacro(Merging,int);
00125 
00127 
00133   vtkSetMacro(PassThroughCellIds,int);
00134   vtkGetMacro(PassThroughCellIds,int);
00135   vtkBooleanMacro(PassThroughCellIds,int);
00136   vtkSetMacro(PassThroughPointIds,int);
00137   vtkGetMacro(PassThroughPointIds,int);
00138   vtkBooleanMacro(PassThroughPointIds,int);
00140 
00142 
00146   vtkSetStringMacro(OriginalCellIdsName);
00147   virtual const char *GetOriginalCellIdsName() {
00148     return (  this->OriginalCellIdsName
00149             ? this->OriginalCellIdsName : "vtkOriginalCellIds");
00150   }
00151   vtkSetStringMacro(OriginalPointIdsName);
00152   virtual const char *GetOriginalPointIdsName() {
00153     return (  this->OriginalPointIdsName
00154             ? this->OriginalPointIdsName : "vtkOriginalPointIds");
00155   }
00157 
00159 
00161   void SetLocator(vtkIncrementalPointLocator *locator);
00162   vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
00164 
00166   void CreateDefaultLocator();
00167 
00169   unsigned long GetMTime();
00170 
00171 protected:
00172   vtkUnstructuredGridGeometryFilter();
00173   ~vtkUnstructuredGridGeometryFilter();
00174 
00175   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00176   virtual int FillInputPortInformation(int port, vtkInformation *info);
00177   
00178   int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00179 
00180   vtkIdType PointMaximum;
00181   vtkIdType PointMinimum;
00182   vtkIdType CellMinimum;
00183   vtkIdType CellMaximum;
00184   double Extent[6];
00185   int PointClipping;
00186   int CellClipping;
00187   int ExtentClipping;
00188 
00189   int PassThroughCellIds;
00190   int PassThroughPointIds;
00191   char *OriginalCellIdsName;
00192   char *OriginalPointIdsName;
00193 
00194   int Merging;
00195   vtkIncrementalPointLocator *Locator;
00196   
00197   vtkHashTableOfSurfels *HashTable;
00198   
00199 private:
00200   vtkUnstructuredGridGeometryFilter(const vtkUnstructuredGridGeometryFilter&);  // Not implemented.
00201   void operator=(const vtkUnstructuredGridGeometryFilter&);  // Not implemented.
00202 };
00203 
00204 #endif