00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkCell3D_h
00027 #define __vtkCell3D_h
00028
00029 #include "vtkCell.h"
00030
00031 class vtkOrderedTriangulator;
00032 class vtkTetra;
00033 class vtkCellArray;
00034 class vtkDoubleArray;
00035
00036 class VTK_FILTERING_EXPORT vtkCell3D : public vtkCell
00037 {
00038 public:
00039 vtkTypeRevisionMacro(vtkCell3D,vtkCell);
00040 void PrintSelf(ostream& os, vtkIndent indent);
00041
00047 virtual void GetEdgePoints(int edgeId, int* &pts) = 0;
00048
00054 virtual void GetFacePoints(int faceId, int* &pts) = 0;
00055
00056 void Contour(double value, vtkDataArray *cellScalars,
00057 vtkPointLocator *locator, vtkCellArray *verts,
00058 vtkCellArray *lines, vtkCellArray *polys,
00059 vtkPointData *inPd, vtkPointData *outPd,
00060 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd);
00061
00063
00074 virtual void Clip(double value, vtkDataArray *cellScalars,
00075 vtkPointLocator *locator, vtkCellArray *connectivity,
00076 vtkPointData *inPd, vtkPointData *outPd,
00077 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd,
00078 int insideOut);
00080
00082 virtual int GetCellDimension() {return 3;}
00083
00085
00088 vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00089 vtkGetMacro(MergeTolerance,double);
00091
00092 protected:
00093 vtkCell3D();
00094 ~vtkCell3D();
00095
00096 vtkOrderedTriangulator *Triangulator;
00097 double MergeTolerance;
00098
00099
00100 vtkTetra *ClipTetra;
00101 vtkDoubleArray *ClipScalars;
00102
00103 private:
00104 vtkCell3D(const vtkCell3D&);
00105 void operator=(const vtkCell3D&);
00106 };
00107
00108 #endif
00109
00110