40 #ifndef vtkOctreePointLocator_h
41 #define vtkOctreePointLocator_h
43 #include "vtkCommonDataModelModule.h"
65 vtkGetMacro(MaximumPointsPerRegion,
int);
73 vtkGetMacro(CreateCubicOctants,
int);
83 vtkGetMacro(FudgeFactor,
double);
93 void GetBounds(
double *bounds) VTK_OVERRIDE;
100 vtkGetMacro(NumberOfLeafNodes,
int);
106 void GetRegionBounds(
int regionID,
double bounds[6]);
111 void GetRegionDataBounds(
int leafNodeID,
double bounds[6]);
116 int GetRegionContainingPoint(
double x,
double y,
double z);
123 void BuildLocator() VTK_OVERRIDE;
130 vtkIdType FindClosestPoint(const
double x[3]) VTK_OVERRIDE;
131 vtkIdType FindClosestPoint(
double x,
double y,
double z,
double &dist2);
140 double radius, const
double x[3],
double& dist2) VTK_OVERRIDE;
148 vtkIdType FindClosestPointInRegion(
int regionId,
double *x,
double &dist2);
149 vtkIdType FindClosestPointInRegion(
int regionId,
double x,
double y,
150 double z,
double &dist2);
157 void FindPointsWithinRadius(
158 double radius, const
double x[3],
vtkIdList *result) VTK_OVERRIDE;
168 void FindClosestNPoints(
int N, const
double x[3],
179 void FreeSearchStructure() VTK_OVERRIDE;
193 void FindPointsInArea(
double* area,
vtkIdTypeArray* ids,
bool clearArray = true);
198 ~vtkOctreePointLocator() VTK_OVERRIDE;
237 int DivideTest(
int size,
int level);
245 int _FindClosestPointInRegion(
int leafNodeId,
double x,
double y,
246 double z,
double &dist2);
255 int FindClosestPointInSphere(
double x,
double y,
double z,
double radius,
256 int skipRegion,
double &dist2);
262 int MaximumPointsPerRegion;
263 int NumberOfLeafNodes;
267 int NumberOfLocatorPoints;
268 float *LocatorPoints;
280 int CreateCubicOctants;
282 vtkOctreePointLocator(const vtkOctreePointLocator&) VTK_DELETE_FUNCTION;
283 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