00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkHyperOctreeClipCutPointsGrabber.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 =========================================================================*/ 00024 #ifndef __vtkHyperOctreeClipCutPointsGrabber_h 00025 #define __vtkHyperOctreeClipCutPointsGrabber_h 00026 00027 #include "vtkHyperOctreePointsGrabber.h" 00028 00029 class vtkHyperOctreeIdSet; // Pimpl idiom 00030 class vtkPolygon; 00031 class vtkOrderedTriangulator; 00032 00033 00034 class VTK_GRAPHICS_EXPORT vtkHyperOctreeClipCutPointsGrabber : public vtkHyperOctreePointsGrabber 00035 { 00036 public: 00037 static vtkHyperOctreeClipCutPointsGrabber *New(); 00038 00039 vtkTypeRevisionMacro(vtkHyperOctreeClipCutPointsGrabber,vtkHyperOctreePointsGrabber); 00040 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00045 virtual void SetDimension(int dim); 00046 00052 virtual void InitPointInsertion(); 00053 00055 00058 virtual void InsertPoint(vtkIdType ptId, 00059 double pt[3], 00060 double pcoords[3], 00061 int ijk[3]); 00063 00065 00066 virtual void InsertPointWithMerge(vtkIdType ptId, 00067 double pt[3], 00068 double pcoords[3], 00069 int ijk[3]); 00071 00073 00074 virtual void InsertPoint2D(double pt[3], 00075 int ijk[3]); 00077 00079 vtkOrderedTriangulator *GetTriangulator(); 00080 00082 vtkPolygon *GetPolygon(); 00083 00084 00085 protected: 00086 // Constructor with default bounds (0,1, 0,1, 0,1). 00087 vtkHyperOctreeClipCutPointsGrabber(); 00088 ~vtkHyperOctreeClipCutPointsGrabber(); 00089 00090 vtkOrderedTriangulator *Triangulator; 00091 vtkPolygon *Polygon; 00092 vtkHyperOctreeIdSet *IdSet; 00093 00094 private: 00095 vtkHyperOctreeClipCutPointsGrabber(const vtkHyperOctreeClipCutPointsGrabber&); // Not implemented. 00096 void operator=(const vtkHyperOctreeClipCutPointsGrabber&); // Not implemented. 00097 }; 00098 00099 #endif