00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkIncrementalPointLocator.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 =========================================================================*/ 00041 #ifndef __vtkIncrementalPointLocator_h 00042 #define __vtkIncrementalPointLocator_h 00043 00044 #include "vtkAbstractPointLocator.h" 00045 00046 class vtkPoints; 00047 class vtkIdList; 00048 00049 class VTK_FILTERING_EXPORT vtkIncrementalPointLocator : public vtkAbstractPointLocator 00050 { 00051 public: 00052 00053 vtkTypeMacro( vtkIncrementalPointLocator, vtkAbstractPointLocator ); 00054 void PrintSelf( ostream & os, vtkIndent indent ); 00055 00057 virtual void Initialize() = 0; 00058 00066 virtual vtkIdType FindClosestInsertedPoint( const double x[3] ) = 0; 00067 00068 // ------------------------------------------------------------------------- 00069 // ---------------------------- Point Location ---------------------------- 00070 // ---- All virtual functions related to point location are declared by ---- 00071 // --------------- the parent class vtkAbstractPointLocator --------------- 00072 // ------------------------------------------------------------------------- 00073 00074 // ------------------------------------------------------------------------- 00075 // ---------------------------- Point Insertion ---------------------------- 00076 // ------------------------------------------------------------------------- 00077 00083 virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6] ) = 0; 00084 00086 00091 virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6], 00092 vtkIdType estSize ) = 0; 00094 00098 virtual vtkIdType IsInsertedPoint( double x, double y, double z ) = 0; 00099 00103 virtual vtkIdType IsInsertedPoint( const double x[3] ) = 0; 00104 00107 virtual int InsertUniquePoint( const double x[3], vtkIdType & ptId ) = 0; 00108 00114 virtual void InsertPoint( vtkIdType ptId, const double x[3] ) = 0; 00115 00121 virtual vtkIdType InsertNextPoint( const double x[3] ) = 0; 00122 00123 protected: 00124 vtkIncrementalPointLocator(); 00125 virtual ~vtkIncrementalPointLocator(); 00126 00127 private: 00128 vtkIncrementalPointLocator( const vtkIncrementalPointLocator & ); // Not implemented. 00129 void operator = ( const vtkIncrementalPointLocator & ); // Not implemented. 00130 }; 00131 00132 #endif