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

vtkCell3D.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCell3D.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 =========================================================================*/
00036 #ifndef __vtkCell3D_h
00037 #define __vtkCell3D_h
00038 
00039 #include "vtkCell.h"
00040 
00041 class vtkOrderedTriangulator;
00042 class vtkTetra;
00043 class vtkCellArray;
00044 class vtkDoubleArray;
00045 
00046 class VTK_FILTERING_EXPORT vtkCell3D : public vtkCell
00047 {
00048 public:
00049   vtkTypeRevisionMacro(vtkCell3D,vtkCell);
00050   void PrintSelf(ostream& os, vtkIndent indent);
00051 
00057   virtual void GetEdgePoints(int edgeId, int* &pts) = 0;
00058   
00064   virtual void GetFacePoints(int faceId, int* &pts) = 0;
00065 
00066   void Contour(double value, vtkDataArray *cellScalars, 
00067                vtkPointLocator *locator, vtkCellArray *verts, 
00068                vtkCellArray *lines, vtkCellArray *polys,
00069                vtkPointData *inPd, vtkPointData *outPd,
00070                vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd);
00071 
00073 
00084   virtual void Clip(double value, vtkDataArray *cellScalars, 
00085                     vtkPointLocator *locator, vtkCellArray *connectivity,
00086                     vtkPointData *inPd, vtkPointData *outPd,
00087                     vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, 
00088                     int insideOut);
00090 
00092   virtual int GetCellDimension() {return 3;}
00093 
00095 
00098   vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00099   vtkGetMacro(MergeTolerance,double);
00101 
00102 protected:
00103   vtkCell3D();
00104   ~vtkCell3D();
00105   
00106   vtkOrderedTriangulator *Triangulator;
00107   double                  MergeTolerance;
00108 
00109   //used to support clipping
00110   vtkTetra               *ClipTetra;
00111   vtkDoubleArray         *ClipScalars;
00112 
00113 private:
00114   vtkCell3D(const vtkCell3D&);  // Not implemented.
00115   void operator=(const vtkCell3D&);  // Not implemented.
00116 };
00117 
00118 #endif
00119 
00120