37#ifndef vtkPointLocator_h 
   38#define vtkPointLocator_h 
   40#include "vtkCommonDataModelModule.h"  
   43VTK_ABI_NAMESPACE_BEGIN
 
   46class vtkNeighborPoints;
 
   70  vtkSetVector3Macro(Divisions, 
int);
 
   71  vtkGetVectorMacro(Divisions, 
int, 3);
 
   78  vtkSetClampMacro(NumberOfPointsPerBucket, 
int, 1, 
VTK_INT_MAX);
 
   79  vtkGetMacro(NumberOfPointsPerBucket, 
int);
 
  103    double radius, 
const double x[3], 
double inputDataLength, 
double& dist2);
 
  247    vtkNeighborPoints* buckets, 
const int ijk[3], 
const int ndivs[3], 
int level);
 
  249    vtkNeighborPoints* buckets, 
const double x[3], 
const int ijk[3], 
double dist, 
int level);
 
  251    int prevMinLevel[3], 
int prevMaxLevel[3]);
 
  268  double FX, FY, FZ, 
BX, BY, BZ;
 
  278    ijk[0] = tmp0 < 0 ? 0 : (tmp0 >= this->XD ? this->XD - 1 : tmp0);
 
  279    ijk[1] = tmp1 < 0 ? 0 : (tmp1 >= this->YD ? this->YD - 1 : tmp1);
 
  280    ijk[2] = tmp2 < 0 ? 0 : (tmp2 >= this->ZD ? this->ZD - 1 : tmp2);
 
  286    this->GetBucketIndices(x, ijk);
 
  287    return ijk[0] + ijk[1] * this->XD + ijk[2] * this->SliceSize;
 
virtual vtkIdType FindClosestPoint(const double x[3])=0
Given a position x, return the id of the point closest to it.
 
object to represent cell connectivity
 
list of point or cell ids
 
Abstract class in support of both point location and point insertion.
 
virtual vtkIdType IsInsertedPoint(double x, double y, double z)=0
Determine whether or not a given point has been inserted.
 
a simple class to control print indentation
 
quickly locate points in 3-space
 
void InsertPoint(vtkIdType ptId, const double x[3]) override
Incrementally insert a point into search structure with a particular index value.
 
int InitPointInsertion(vtkPoints *newPts, const double bounds[6]) override
Initialize the point insertion process.
 
vtkIdType FindClosestPointWithinRadius(double radius, const double x[3], double &dist2) override
Given a position x and a radius r, return the id of the point closest to the point in that radius.
 
vtkIdType IsInsertedPoint(double x, double y, double z) override
Determine whether point given by x[3] has been inserted into points list.
 
void BuildLocator() override
See vtkLocator interface documentation.
 
int NumberOfPointsPerBucket
 
void FindClosestNPoints(int N, const double x[3], vtkIdList *result) override
Find the closest N points to a position.
 
virtual void FindDistributedPoints(int N, double x, double y, double z, vtkIdList *result, int M)
Find the closest points to a position such that each octant of space around the position contains at ...
 
virtual vtkIdList * GetPointsInBucket(const double x[3], int ijk[3])
Given a position x, return the list of points in the bucket that contains the point.
 
static vtkPointLocator * New()
Construct with automatic computation of divisions, averaging 25 points per bucket.
 
void GetBucketIndices(const double *x, int ijk[3]) const
 
void GetBucketNeighbors(vtkNeighborPoints *buckets, const int ijk[3], const int ndivs[3], int level)
 
virtual void FindDistributedPoints(int N, const double x[3], vtkIdList *result, int M)
Find the closest points to a position such that each octant of space around the position contains at ...
 
void FreeSearchStructure() override
See vtkLocator interface documentation.
 
void BuildLocatorInternal() override
This function is not pure virtual to maintain backwards compatibility.
 
void ForceBuildLocator() override
See vtkLocator interface documentation.
 
void Initialize() override
See vtkLocator interface documentation.
 
vtkIdType FindClosestPoint(const double x[3]) override
Given a position x, return the id of the point closest to it.
 
double Distance2ToBucket(const double x[3], const int nei[3])
 
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for type management and printing.
 
virtual vtkIdType FindClosestPointWithinRadius(double radius, const double x[3], double inputDataLength, double &dist2)
Given a position x and a radius r, return the id of the point closest to the point in that radius.
 
void ComputePerformanceFactors()
 
vtkIdType IsInsertedPoint(const double x[3]) override
Determine whether point given by x[3] has been inserted into points list.
 
~vtkPointLocator() override
 
void GenerateRepresentation(int level, vtkPolyData *pd) override
See vtkLocator interface documentation.
 
void GenerateFace(int face, int i, int j, int k, vtkPoints *pts, vtkCellArray *polys)
 
vtkIdType InsertionPointId
 
void GetOverlappingBuckets(vtkNeighborPoints *buckets, const double x[3], double dist, int prevMinLevel[3], int prevMaxLevel[3])
 
void GetOverlappingBuckets(vtkNeighborPoints *buckets, const double x[3], const int ijk[3], double dist, int level)
 
vtkIdType GetBucketIndex(const double *x) const
 
vtkIdType InsertNextPoint(const double x[3]) override
Incrementally insert a point into search structure.
 
int InsertUniquePoint(const double x[3], vtkIdType &ptId) override
Determine whether point given by x[3] has been inserted into points list.
 
void FindPointsWithinRadius(double R, const double x[3], vtkIdList *result) override
Find all points within a specified radius R of position x.
 
double Distance2ToBounds(const double x[3], const double bounds[6])
 
int InitPointInsertion(vtkPoints *newPts, const double bounds[6], vtkIdType estNumPts) override
Initialize the point insertion process.
 
vtkIdType FindClosestInsertedPoint(const double x[3]) override
Given a position x, return the id of the point closest to it.
 
represent and manipulate 3D points
 
concrete dataset represents vertices, lines, polygons, and triangle strips