VTK
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 =========================================================================*/
00041 #ifndef __vtkIncrementalPointLocator_h
00042 #define __vtkIncrementalPointLocator_h
00043 
00044 #include "vtkCommonDataModelModule.h" // For export macro
00045 #include "vtkAbstractPointLocator.h"
00046 
00047 class vtkPoints;
00048 class vtkIdList;
00049 
00050 class VTKCOMMONDATAMODEL_EXPORT vtkIncrementalPointLocator : public vtkAbstractPointLocator
00051 {
00052 public:
00053 
00054   vtkTypeMacro( vtkIncrementalPointLocator, vtkAbstractPointLocator );
00055   void PrintSelf( ostream & os, vtkIndent indent );
00056 
00058   virtual void Initialize() = 0;
00059 
00067   virtual vtkIdType FindClosestInsertedPoint( const double x[3] ) = 0;
00068 
00069   // -------------------------------------------------------------------------
00070   // ---------------------------- Point  Location ----------------------------
00071   // ---- All virtual functions related to point location are declared by ----
00072   // --------------- the parent class  vtkAbstractPointLocator ---------------
00073   // -------------------------------------------------------------------------
00074 
00075   // -------------------------------------------------------------------------
00076   // ---------------------------- Point Insertion ----------------------------
00077   // -------------------------------------------------------------------------
00078 
00084   virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6] ) = 0;
00085 
00087 
00092   virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6],
00093                                   vtkIdType estSize ) = 0;
00095 
00099   virtual vtkIdType IsInsertedPoint( double x, double  y, double z ) = 0;
00100 
00104   virtual vtkIdType IsInsertedPoint( const double x[3] ) = 0;
00105 
00108   virtual int InsertUniquePoint( const double x[3], vtkIdType & ptId ) = 0;
00109 
00115   virtual void InsertPoint( vtkIdType ptId, const double x[3] ) = 0;
00116 
00122   virtual vtkIdType InsertNextPoint( const double x[3] ) = 0;
00123 
00124 protected:
00125   vtkIncrementalPointLocator();
00126   virtual ~vtkIncrementalPointLocator();
00127 
00128 private:
00129   vtkIncrementalPointLocator( const vtkIncrementalPointLocator & );  // Not implemented.
00130   void operator = ( const vtkIncrementalPointLocator & );            // Not implemented.
00131 };
00132 
00133 #endif