37 #ifndef vtkOctreePointLocator_h
38 #define vtkOctreePointLocator_h
40 #include "vtkCommonDataModelModule.h"
62 vtkGetMacro(MaximumPointsPerRegion,
int);
70 vtkGetMacro(CreateCubicOctants,
int);
80 vtkGetMacro(FudgeFactor,
double);
90 void GetBounds(
double *bounds) VTK_OVERRIDE;
97 vtkGetMacro(NumberOfLeafNodes,
int);
103 void GetRegionBounds(
int regionID,
double bounds[6]);
108 void GetRegionDataBounds(
int leafNodeID,
double bounds[6]);
113 int GetRegionContainingPoint(
double x,
double y,
double z);
120 void BuildLocator() VTK_OVERRIDE;
127 vtkIdType FindClosestPoint(const
double x[3]) VTK_OVERRIDE;
128 vtkIdType FindClosestPoint(
double x,
double y,
double z,
double &dist2);
137 double radius, const
double x[3],
double& dist2) VTK_OVERRIDE;
145 vtkIdType FindClosestPointInRegion(
int regionId,
double *x,
double &dist2);
146 vtkIdType FindClosestPointInRegion(
int regionId,
double x,
double y,
147 double z,
double &dist2);
154 void FindPointsWithinRadius(
155 double radius, const
double x[3],
vtkIdList *result) VTK_OVERRIDE;
165 void FindClosestNPoints(
int N, const
double x[3],
176 void FreeSearchStructure() VTK_OVERRIDE;
190 void FindPointsInArea(
double* area,
vtkIdTypeArray* ids,
bool clearArray = true);
195 ~vtkOctreePointLocator() VTK_OVERRIDE;
234 int DivideTest(
int size,
int level);
242 int _FindClosestPointInRegion(
int leafNodeId,
double x,
double y,
243 double z,
double &dist2);
252 int FindClosestPointInSphere(
double x,
double y,
double z,
double radius,
253 int skipRegion,
double &dist2);
259 int MaximumPointsPerRegion;
260 int NumberOfLeafNodes;
264 int NumberOfLocatorPoints;
265 float *LocatorPoints;
277 int CreateCubicOctants;
279 vtkOctreePointLocator(const vtkOctreePointLocator&) VTK_DELETE_FUNCTION;
280 void operator=(const vtkOctreePointLocator&) VTK_DELETE_FUNCTION;
an octree spatial decomposition of a set of points
virtual double * GetBounds()
Provide an accessor to the bounds.
dynamic, self-adjusting array of vtkIdType
concrete dataset represents vertices, lines, polygons, and triangle strips
a simple class to control print indentation
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type and print methods.
abstract class to quickly locate points in 3-space
list of point or cell ids
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
object to represent cell connectivity
Octree node that has 8 children each of equal size.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
represent and manipulate 3D points