FreeMat

- Main Page
- Related Pages

vtkIncrementalPointLocator

Section: Visualization Toolkit Filtering Classes

# Usage

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.

To create an instance of class vtkIncrementalPointLocator, simply invoke its constructor as follows

      obj = vtkIncrementalPointLocator

# Methods

The class vtkIncrementalPointLocator has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, `obj` is an instance of the vtkIncrementalPointLocator class.

- `string = obj.GetClassName ()`
- `int = obj.IsA (string name)`
- `vtkIncrementalPointLocator = obj.NewInstance ()`
- `vtkIncrementalPointLocator = obj.SafeDownCast (vtkObject o)`
- `obj.Initialize ()` - Delete the search structure.
- `vtkIdType = obj.FindClosestInsertedPoint (double x[3])` - 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.
- `int = obj.InitPointInsertion (vtkPoints newPts, double bounds[6])` - 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.
- `int = obj.InitPointInsertion (vtkPoints newPts, double bounds[6], vtkIdType estSize)` - 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.
- `vtkIdType = obj.IsInsertedPoint (double x, double y, double z)` - 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.
- `vtkIdType = obj.IsInsertedPoint (double x[3])` - 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.
- `obj.InsertPoint (vtkIdType ptId, double x[3])` - 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.
- `vtkIdType = obj.InsertNextPoint (double x[3])` - 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.