50 #ifndef __vtkIncrementalOctreePointLocator_h
51 #define __vtkIncrementalOctreePointLocator_h
79 vtkSetClampMacro( MaxPointsPerLeaf,
int, 16, 256 );
80 vtkGetMacro( MaxPointsPerLeaf,
int );
85 vtkSetMacro( BuildCubicOctree,
int );
86 vtkGetMacro( BuildCubicOctree,
int );
87 vtkBooleanMacro( BuildCubicOctree,
int );
93 vtkGetObjectMacro( LocatorPoints,
vtkPoints );
97 virtual void Initialize() { this->FreeSearchStructure(); }
100 virtual void FreeSearchStructure();
103 virtual void GetBounds(
double * bounds );
108 { this->GetBounds( this->Bounds );
return this->Bounds; }
112 int GetNumberOfPoints();
124 virtual void GenerateRepresentation(
int nodeLevel, vtkPolyData * polysData );
133 virtual void BuildLocator();
139 virtual vtkIdType FindClosestPoint(
const double x[3] );
145 virtual vtkIdType FindClosestPoint(
double x,
double y,
double z );
152 virtual vtkIdType FindClosestPoint(
const double x[3],
double * miniDist2 );
159 virtual vtkIdType FindClosestPoint(
double x,
double y,
double z,
double * miniDist2 );
168 virtual vtkIdType FindClosestPointWithinRadius
169 (
double radius,
const double x[3],
double & dist2 );
179 vtkIdType FindClosestPointWithinSquaredRadius
180 (
double radius2,
const double x[3],
double & dist2 );
189 virtual void FindPointsWithinRadius
190 (
double R,
const double x[3],
vtkIdList * result );
199 void FindPointsWithinSquaredRadius
200 (
double R2,
const double x[3],
vtkIdList * result );
209 virtual void FindClosestNPoints
210 (
int N,
const double x[3],
vtkIdList * result );
286 void InsertPointWithoutChecking
287 (
const double point[3],
vtkIdType & pntId,
int insert );
298 int BuildCubicOctree;
299 int MaxPointsPerLeaf;
300 double InsertTolerance2;
301 double OctreeMaxDimSize;
313 vtkPoints * points, vtkCellArray * polygs );
321 const double pnt[3] );
332 const double point[3],
double * dist2 );
349 double * minDist2,
const double * refDist2 );
367 vtkIdType FindClosestPointInSphereWithoutTolerance(
const double point[3],
377 double radius2,
const double point[3],
vtkIdList * idList );
395 vtkIdType FindClosestPointInSphereWithTolerance(
const double point[3],
420 vtkIdType IsInsertedPointForZeroTolerance
433 vtkIdType IsInsertedPointForNonZeroTolerance
444 const double point[3] );
454 vtkIdType FindDuplicateFloatTypePointInVisitedLeafNode
465 vtkIdType FindDuplicateDoubleTypePointInVisitedLeafNode
virtual void Initialize()
virtual int InsertUniquePoint(const double x[3], vtkIdType &ptId)=0
virtual vtkIdType IsInsertedPoint(double x, double y, double z)=0
Abstract class in support of both point location and point insertion.
void PrintSelf(ostream &os, vtkIndent indent)
virtual int InitPointInsertion(vtkPoints *newPts, const double bounds[6])=0
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) ...
virtual vtkIdType InsertNextPoint(const double x[3])=0
virtual vtkIdType FindClosestInsertedPoint(const double x[3])=0
virtual double * GetBounds()
virtual void InsertPoint(vtkIdType ptId, const double x[3])=0
represent and manipulate 3D points
Incremental octree in support of both point location and point insertion.