VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Common/DataModel/vtkIncrementalPointLocator.h
Go to the documentation of this file.
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 =========================================================================*/
00044 #ifndef vtkIncrementalPointLocator_h
00045 #define vtkIncrementalPointLocator_h
00046 
00047 #include "vtkCommonDataModelModule.h" // For export macro
00048 #include "vtkAbstractPointLocator.h"
00049 
00050 class vtkPoints;
00051 class vtkIdList;
00052 
00053 class VTKCOMMONDATAMODEL_EXPORT vtkIncrementalPointLocator : public vtkAbstractPointLocator
00054 {
00055 public:
00056 
00057   vtkTypeMacro( vtkIncrementalPointLocator, vtkAbstractPointLocator );
00058   void PrintSelf( ostream & os, vtkIndent indent );
00059 
00061   virtual void Initialize() = 0;
00062 
00070   virtual vtkIdType FindClosestInsertedPoint( const double x[3] ) = 0;
00071 
00072   // -------------------------------------------------------------------------
00073   // ---------------------------- Point  Location ----------------------------
00074   // ---- All virtual functions related to point location are declared by ----
00075   // --------------- the parent class  vtkAbstractPointLocator ---------------
00076   // -------------------------------------------------------------------------
00077 
00078   // -------------------------------------------------------------------------
00079   // ---------------------------- Point Insertion ----------------------------
00080   // -------------------------------------------------------------------------
00081 
00087   virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6] ) = 0;
00088 
00090 
00095   virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6],
00096                                   vtkIdType estSize ) = 0;
00098 
00102   virtual vtkIdType IsInsertedPoint( double x, double  y, double z ) = 0;
00103 
00107   virtual vtkIdType IsInsertedPoint( const double x[3] ) = 0;
00108 
00111   virtual int InsertUniquePoint( const double x[3], vtkIdType & ptId ) = 0;
00112 
00118   virtual void InsertPoint( vtkIdType ptId, const double x[3] ) = 0;
00119 
00125   virtual vtkIdType InsertNextPoint( const double x[3] ) = 0;
00126 
00127 protected:
00128   vtkIncrementalPointLocator();
00129   virtual ~vtkIncrementalPointLocator();
00130 
00131 private:
00132   vtkIncrementalPointLocator( const vtkIncrementalPointLocator & );  // Not implemented.
00133   void operator = ( const vtkIncrementalPointLocator & );            // Not implemented.
00134 };
00135 
00136 #endif