VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCell3D.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 =========================================================================*/ 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 vtkTypeMacro(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 virtual void Contour(double value, vtkDataArray *cellScalars, 00057 vtkIncrementalPointLocator *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 vtkIncrementalPointLocator *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 //used to support clipping 00100 vtkTetra *ClipTetra; 00101 vtkDoubleArray *ClipScalars; 00102 00103 private: 00104 vtkCell3D(const vtkCell3D&); // Not implemented. 00105 void operator=(const vtkCell3D&); // Not implemented. 00106 }; 00107 00108 #endif 00109 00110