#include <vtkIncrementalPointLocator.h>
Compared to a static point locator for pure location functionalities through some search structure established from a fixed set of points, an incremental point locator allows for, in addition, point insertion capabilities, with the search structure maintaining a dynamically increasing number of points. There are two incremental point locators, i.e., vtkPointLocator and vtkIncrementalOctreePointLocator. As opposed to the uniform bin-based search structure (adopted in vtkPointLocator) with a fixed spatial resolution, an octree mechanism (employed in vtkIncrementalOctreePointlocator) resorts to a hierarchy of tree-like sub-division of the 3D data domain. Thus it enables data-aware multi- resolution and accordingly accelerated point location as well as point insertion, particularly when handling a radically imbalanced layout of points as not uncommon in datasets defined on adaptive meshes. In other words, vtkIncrementalOctreePointLocator is an octree-based accelerated implementation of all functionalities of vtkPointLocator.
Definition at line 49 of file vtkIncrementalPointLocator.h.
Public Types | |
typedef vtkAbstractPointLocator | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | Initialize ()=0 |
virtual vtkIdType | FindClosestInsertedPoint (const double x[3])=0 |
virtual int | InitPointInsertion (vtkPoints *newPts, const double bounds[6])=0 |
virtual vtkIdType | IsInsertedPoint (double x, double y, double z)=0 |
virtual vtkIdType | IsInsertedPoint (const double x[3])=0 |
virtual int | InsertUniquePoint (const double x[3], vtkIdType &ptId)=0 |
virtual void | InsertPoint (vtkIdType ptId, const double x[3])=0 |
virtual vtkIdType | InsertNextPoint (const double x[3])=0 |
virtual int | InitPointInsertion (vtkPoints *newPts, const double bounds[6], vtkIdType estSize)=0 |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkIncrementalPointLocator * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
vtkIncrementalPointLocator () | |
virtual | ~vtkIncrementalPointLocator () |
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
Definition at line 53 of file vtkIncrementalPointLocator.h.
vtkIncrementalPointLocator::vtkIncrementalPointLocator | ( | ) | [protected] |
virtual vtkIncrementalPointLocator::~vtkIncrementalPointLocator | ( | ) | [protected, virtual] |
virtual const char* vtkIncrementalPointLocator::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
static int vtkIncrementalPointLocator::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
virtual int vtkIncrementalPointLocator::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
static vtkIncrementalPointLocator* vtkIncrementalPointLocator::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
void vtkIncrementalPointLocator::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkAbstractPointLocator.
Reimplemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
virtual void vtkIncrementalPointLocator::Initialize | ( | ) | [pure virtual] |
Delete the search structure.
Reimplemented from vtkLocator.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.
virtual vtkIdType vtkIncrementalPointLocator::FindClosestInsertedPoint | ( | const double | x[3] | ) | [pure virtual] |
Given a point x assumed to be covered by the search structure, return the index of the closest point (already inserted to the search structure) regardless of the associated minimum squared distance relative to the squared insertion-tolerance distance. This method is used when performing incremental point insertion. Note -1 indicates that no point is found. InitPointInsertion() should have been called in advance.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.
virtual int vtkIncrementalPointLocator::InitPointInsertion | ( | vtkPoints * | newPts, | |
const double | bounds[6] | |||
) | [pure virtual] |
Initialize the point insertion process. newPts is an object, storing 3D point coordinates, to which incremental point insertion puts coordinates. It is created and provided by an external VTK class. Argument bounds represents the spatial bounding box, into which the points fall.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.
virtual int vtkIncrementalPointLocator::InitPointInsertion | ( | vtkPoints * | newPts, | |
const double | bounds[6], | |||
vtkIdType | estSize | |||
) | [pure virtual] |
Initialize the point insertion process. newPts is an object, storing 3D point coordinates, to which incremental point insertion puts coordinates. It is created and provided by an external VTK class. Argument bounds represents the spatial bounding box, into which the points fall.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.
virtual vtkIdType vtkIncrementalPointLocator::IsInsertedPoint | ( | double | x, | |
double | y, | |||
double | z | |||
) | [pure virtual] |
Determine whether or not a given point has been inserted. Return the id of the already inserted point if true, else return -1. InitPointInsertion() should have been called in advance.
Implemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
virtual vtkIdType vtkIncrementalPointLocator::IsInsertedPoint | ( | const double | x[3] | ) | [pure virtual] |
Determine whether or not a given point has been inserted. Return the id of the already inserted point if true, else return -1. InitPointInsertion() should have been called in advance.
Implemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
virtual int vtkIncrementalPointLocator::InsertUniquePoint | ( | const double | x[3], | |
vtkIdType & | ptId | |||
) | [pure virtual] |
Insert a point unless there has been a duplciate in the search structure. This method is not thread safe.
Implemented in vtkIncrementalOctreePointLocator, vtkMergePoints, vtkNonMergingPointLocator, and vtkPointLocator.
virtual void vtkIncrementalPointLocator::InsertPoint | ( | vtkIdType | ptId, | |
const double | x[3] | |||
) | [pure virtual] |
Insert a given point with a specified point index ptId. InitPointInsertion() should have been called prior to this function. Also, IsInsertedPoint() should have been called in advance to ensure that the given point has not been inserted unless point duplication is allowed.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.
virtual vtkIdType vtkIncrementalPointLocator::InsertNextPoint | ( | const double | x[3] | ) | [pure virtual] |
Insert a given point and return the point index. InitPointInsertion() should have been called prior to this function. Also, IsInsertedPoint() should have been called in advance to ensure that the given point has not been inserted unless point duplication is allowed.
Implemented in vtkIncrementalOctreePointLocator, and vtkPointLocator.