51 #ifndef vtkIncrementalOctreePointLocator_h
52 #define vtkIncrementalOctreePointLocator_h
54 #include "vtkCommonDataModelModule.h"
83 vtkSetClampMacro( MaxPointsPerLeaf,
int, 16, 256 );
84 vtkGetMacro( MaxPointsPerLeaf,
int );
92 vtkGetMacro( BuildCubicOctree,
int );
101 vtkGetObjectMacro( LocatorPoints,
vtkPoints );
117 void GetBounds(
double * bounds ) VTK_OVERRIDE;
122 double * GetBounds() VTK_OVERRIDE
128 int GetNumberOfPoints();
160 vtkIdType FindClosestPoint( const
double x[3] ) VTK_OVERRIDE;
168 virtual
vtkIdType FindClosestPoint(
double x,
double y,
double z );
176 virtual
vtkIdType FindClosestPoint( const
double x[3],
double * miniDist2 );
184 virtual
vtkIdType FindClosestPoint(
double x,
double y,
double z,
double * miniDist2 );
195 (
double radius, const
double x[3],
double & dist2 ) VTK_OVERRIDE;
205 vtkIdType FindClosestPointWithinSquaredRadius
206 (
double radius2, const
double x[3],
double & dist2 );
214 void FindPointsWithinRadius
215 (
double R, const
double x[3],
vtkIdList * result ) VTK_OVERRIDE;
223 void FindPointsWithinSquaredRadius
224 (
double R2, const
double x[3],
vtkIdList * result );
232 void FindClosestNPoints
233 (
int N, const
double x[3],
vtkIdList * result ) VTK_OVERRIDE;
248 int InitPointInsertion
261 int InitPointInsertion(
vtkPoints * points, const
double bounds[6],
269 vtkIdType IsInsertedPoint( const
double x[3] ) VTK_OVERRIDE;
276 vtkIdType IsInsertedPoint(
double x,
double y,
double z ) VTK_OVERRIDE;
286 int InsertUniquePoint( const
double point[3],
vtkIdType & pntId ) VTK_OVERRIDE;
296 void InsertPoint(
vtkIdType ptId, const
double x[3] ) VTK_OVERRIDE;
306 vtkIdType InsertNextPoint( const
double x[3] ) VTK_OVERRIDE;
316 void InsertPointWithoutChecking
317 ( const
double point[3],
vtkIdType & pntId,
int insert );
322 ~vtkIncrementalOctreePointLocator() VTK_OVERRIDE;
326 int BuildCubicOctree;
327 int MaxPointsPerLeaf;
328 double InsertTolerance2;
329 double OctreeMaxDimSize;
351 const
double pnt[3] );
361 const
double point[3],
double * dist2 );
377 double * minDist2, const
double * refDist2 );
394 vtkIdType FindClosestPointInSphereWithoutTolerance( const
double point[3],
403 double radius2, const
double point[3],
vtkIdList * idList );
420 vtkIdType FindClosestPointInSphereWithTolerance( const
double point[3],
432 vtkIdType IsInsertedPoint( const
double x[3],
443 vtkIdType IsInsertedPointForZeroTolerance
455 vtkIdType IsInsertedPointForNonZeroTolerance
466 const
double point[3] );
475 vtkIdType FindDuplicateFloatTypePointInVisitedLeafNode
485 vtkIdType FindDuplicateDoubleTypePointInVisitedLeafNode
488 vtkIncrementalOctreePointLocator
489 ( const vtkIncrementalOctreePointLocator & ) VTK_DELETE_FUNCTION;
490 void operator = ( const vtkIncrementalOctreePointLocator & ) VTK_DELETE_FUNCTION;
virtual void BuildLocator()=0
Build the locator from the input dataset.
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.
a simple class to control print indentation
list of point or cell ids
Octree node constituting incremental octree (in support of both point location and point insertion) ...
void Initialize() override
Delete the octree search structure.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type and print methods.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
object to represent cell connectivity
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 ...
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
represent and manipulate 3D points
Incremental octree in support of both point location and point insertion.