VTK
dox/Filtering/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 "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