VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAbstractPointLocator.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 =========================================================================*/ 00026 #ifndef __vtkAbstractPointLocator_h 00027 #define __vtkAbstractPointLocator_h 00028 00029 #include "vtkLocator.h" 00030 00031 class vtkIdList; 00032 00033 class VTK_FILTERING_EXPORT vtkAbstractPointLocator : public vtkLocator 00034 { 00035 public: 00036 vtkTypeRevisionMacro(vtkAbstractPointLocator,vtkLocator); 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 00040 00044 virtual vtkIdType FindClosestPoint(const double x[3]) = 0; 00045 vtkIdType FindClosestPoint(double x, double y, double z); 00047 00049 00052 virtual vtkIdType FindClosestPointWithinRadius( 00053 double radius, const double x[3], double& dist2) = 0; 00055 00057 00063 virtual void FindClosestNPoints( 00064 int N, const double x[3], vtkIdList *result) = 0; 00065 void FindClosestNPoints(int N, double x, double y, double z, 00066 vtkIdList *result); 00068 00070 00074 virtual void FindPointsWithinRadius(double R, const double x[3], 00075 vtkIdList *result) = 0; 00076 void FindPointsWithinRadius(double R, double x, double y, double z, 00077 vtkIdList *result); 00079 00081 00082 virtual double *GetBounds() { return this->Bounds; } 00083 virtual void GetBounds(double*); 00085 00087 00089 virtual void FreeSearchStructure() = 0; 00090 virtual void BuildLocator() = 0; 00091 virtual void GenerateRepresentation(int level, vtkPolyData *pd) = 0; 00093 00094 protected: 00095 vtkAbstractPointLocator(); 00096 virtual ~vtkAbstractPointLocator(); 00097 00098 double Bounds[6]; // bounds of points 00099 00100 private: 00101 vtkAbstractPointLocator(const vtkAbstractPointLocator&); // Not implemented. 00102 void operator=(const vtkAbstractPointLocator&); // Not implemented. 00103 }; 00104 00105 #endif 00106 00107