48 #ifndef vtkIncrementalOctreePointLocator_h 49 #define vtkIncrementalOctreePointLocator_h 51 #include "vtkCommonDataModelModule.h" 80 vtkSetClampMacro( MaxPointsPerLeaf,
int, 16, 256 );
81 vtkGetMacro( MaxPointsPerLeaf,
int );
89 vtkGetMacro( BuildCubicOctree,
int );
98 vtkGetObjectMacro( LocatorPoints,
vtkPoints );
114 void GetBounds(
double * bounds ) VTK_OVERRIDE;
119 double * GetBounds() VTK_OVERRIDE
125 int GetNumberOfPoints();
157 vtkIdType FindClosestPoint( const
double x[3] ) VTK_OVERRIDE;
165 virtual
vtkIdType FindClosestPoint(
double x,
double y,
double z );
173 virtual
vtkIdType FindClosestPoint( const
double x[3],
double * miniDist2 );
181 virtual
vtkIdType FindClosestPoint(
double x,
double y,
double z,
double * miniDist2 );
192 (
double radius, const
double x[3],
double & dist2 ) VTK_OVERRIDE;
202 vtkIdType FindClosestPointWithinSquaredRadius
203 (
double radius2, const
double x[3],
double & dist2 );
211 void FindPointsWithinRadius
212 (
double R, const
double x[3],
vtkIdList * result ) VTK_OVERRIDE;
220 void FindPointsWithinSquaredRadius
221 (
double R2, const
double x[3],
vtkIdList * result );
229 void FindClosestNPoints
230 (
int N, const
double x[3],
vtkIdList * result ) VTK_OVERRIDE;
245 int InitPointInsertion
266 vtkIdType IsInsertedPoint( const
double x[3] ) VTK_OVERRIDE;
273 vtkIdType IsInsertedPoint(
double x,
double y,
double z ) VTK_OVERRIDE;
283 int InsertUniquePoint( const
double point[3],
vtkIdType & pntId ) VTK_OVERRIDE;
293 void InsertPoint(
vtkIdType ptId, const
double x[3] ) VTK_OVERRIDE;
303 vtkIdType InsertNextPoint( const
double x[3] ) VTK_OVERRIDE;
313 void InsertPointWithoutChecking
323 int BuildCubicOctree;
324 int MaxPointsPerLeaf;
325 double InsertTolerance2;
326 double OctreeMaxDimSize;
348 const
double pnt[3] );
358 const
double point[3],
double * dist2 );
374 double * minDist2, const
double * refDist2 );
391 vtkIdType FindClosestPointInSphereWithoutTolerance( const
double point[3],
417 vtkIdType FindClosestPointInSphereWithTolerance( const
double point[3],
429 vtkIdType IsInsertedPoint( const
double x[3],
440 vtkIdType IsInsertedPointForZeroTolerance
452 vtkIdType IsInsertedPointForNonZeroTolerance
463 const
double point[3] );
472 vtkIdType FindDuplicateFloatTypePointInVisitedLeafNode
482 vtkIdType FindDuplicateDoubleTypePointInVisitedLeafNode
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.