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 "vtkCommonDataModelModule.h" // For export macro 00030 #include "vtkCell.h" 00031 00032 class vtkOrderedTriangulator; 00033 class vtkTetra; 00034 class vtkCellArray; 00035 class vtkDoubleArray; 00036 00037 class VTKCOMMONDATAMODEL_EXPORT vtkCell3D : public vtkCell 00038 { 00039 public: 00040 vtkTypeMacro(vtkCell3D,vtkCell); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00048 virtual void GetEdgePoints(int edgeId, int* &pts) = 0; 00049 00055 virtual void GetFacePoints(int faceId, int* &pts) = 0; 00056 00057 virtual void Contour(double value, vtkDataArray *cellScalars, 00058 vtkIncrementalPointLocator *locator, vtkCellArray *verts, 00059 vtkCellArray *lines, vtkCellArray *polys, 00060 vtkPointData *inPd, vtkPointData *outPd, 00061 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd); 00062 00064 00075 virtual void Clip(double value, vtkDataArray *cellScalars, 00076 vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, 00077 vtkPointData *inPd, vtkPointData *outPd, 00078 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, 00079 int insideOut); 00081 00083 virtual int GetCellDimension() {return 3;} 00084 00086 00089 vtkSetClampMacro(MergeTolerance,double,0.0001,0.25); 00090 vtkGetMacro(MergeTolerance,double); 00092 00093 protected: 00094 vtkCell3D(); 00095 ~vtkCell3D(); 00096 00097 vtkOrderedTriangulator *Triangulator; 00098 double MergeTolerance; 00099 00100 //used to support clipping 00101 vtkTetra *ClipTetra; 00102 vtkDoubleArray *ClipScalars; 00103 00104 private: 00105 vtkCell3D(const vtkCell3D&); // Not implemented. 00106 void operator=(const vtkCell3D&); // Not implemented. 00107 }; 00108 00109 #endif 00110 00111