39 #ifndef vtkIncrementalOctreePointLocator_h
40 #define vtkIncrementalOctreePointLocator_h
42 #include "vtkCommonDataModelModule.h"
45 VTK_ABI_NAMESPACE_BEGIN
72 vtkSetMacro(MaxPointsPerLeaf,
int);
73 vtkGetMacro(MaxPointsPerLeaf,
int);
90 vtkGetObjectMacro(LocatorPoints,
vtkPoints);
120 int GetNumberOfPoints();
124 vtkGetMacro(NumberOfNodes,
int);
218 vtkIdType FindClosestPointWithinSquaredRadius(
double radius2,
const double x[3],
double& dist2);
234 void FindPointsWithinSquaredRadius(
double R2,
const double x[3],
vtkIdList* result);
324 void InsertPointWithoutChecking(
const double point[3],
vtkIdType& pntId,
int insert);
332 int GetNumberOfLevels();
340 int MaxPointsPerLeaf;
341 double InsertTolerance2;
342 double OctreeMaxDimSize;
391 vtkIdType FindClosestPointInSphere(
const double point[3],
double radius2,
408 vtkIdType FindClosestPointInSphereWithoutTolerance(
416 void FindPointsWithinSquaredRadius(
434 vtkIdType FindClosestPointInSphereWithTolerance(
456 vtkIdType IsInsertedPointForZeroTolerance(
468 vtkIdType IsInsertedPointForNonZeroTolerance(
487 vtkIdType FindDuplicateFloatTypePointInVisitedLeafNode(
497 vtkIdType FindDuplicateDoubleTypePointInVisitedLeafNode(
503 VTK_ABI_NAMESPACE_END
virtual void BuildLocator()=0
Build the locator from the input dataset.
void GetBounds(T a, double bds[6])
virtual vtkIdType FindClosestPointWithinRadius(double radius, const double x[3], double &dist2)=0
Given a position x and a radius r, return the id of the point closest to the point in that radius...
virtual int InsertUniquePoint(const double x[3], vtkIdType &ptId)=0
Insert a point unless there has been a duplicate in the search structure.
virtual vtkIdType IsInsertedPoint(double x, double y, double z)=0
Determine whether or not a given point has been inserted.
Abstract class in support of both point location and point insertion.
virtual double * GetBounds()
Provide an accessor to the bounds.
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void FreeSearchStructure()=0
Free the memory required for the spatial data structure.
dynamic, self-adjusting array of int
virtual int InitPointInsertion(vtkPoints *newPts, const double bounds[6])=0
Initialize the point insertion process.
a simple class to control print indentation
virtual void BuildLocatorInternal()
This function is not pure virtual to maintain backwards compatibility.
list of point or cell ids
Octree node constituting incremental octree (in support of both point location and point insertion) ...
virtual void FindPointsWithinRadius(double R, const double x[3], vtkIdList *result)=0
Find all points within a specified radius R of position x.
void Initialize() override
Delete the octree search structure.
virtual void FindClosestNPoints(int N, const double x[3], vtkIdList *result)=0
Find the closest N points to a position.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type and print methods.
object to represent cell connectivity
virtual vtkIdType InsertNextPoint(const double x[3])=0
Insert a given point and return the point index.
virtual vtkIdType FindClosestInsertedPoint(const double x[3])=0
Given a point x assumed to be covered by the search structure, return the index of the closest point ...
virtual vtkIdType FindClosestPoint(const double x[3])=0
Given a position x, return the id of the point closest to it.
vtkIncrementalOctreeNode * GetRoot() const
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual void InsertPoint(vtkIdType ptId, const double x[3])=0
Insert a given point with a specified point index ptId.
double * GetBounds() override
Get the spatial bounding box of the octree.
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
represent and manipulate 3D points
virtual void ForceBuildLocator()
Build the locator from the input dataset (even if UseExistingSearchStructure is on).
Incremental octree in support of both point location and point insertion.