00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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];
00099
00100 private:
00101 vtkAbstractPointLocator(const vtkAbstractPointLocator&);
00102 void operator=(const vtkAbstractPointLocator&);
00103 };
00104
00105 #endif
00106
00107