VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
vtkIncrementalPointLocator Class Reference

Abstract class in support of both point location and point insertion. More...

#include <vtkIncrementalPointLocator.h>

Inheritance diagram for vtkIncrementalPointLocator:
Inheritance graph
[legend]
Collaboration diagram for vtkIncrementalPointLocator:
Collaboration graph
[legend]

List of all members.

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 vtkIncrementalPointLocatorSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkIncrementalPointLocator ()
virtual ~vtkIncrementalPointLocator ()

Detailed Description

Abstract class in support of both point location and point insertion.

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.

See also:
vtkLocator, vtkIncrementalOctreePointLocator, vtkPointLocator, vtkMergePoints

Definition at line 49 of file vtkIncrementalPointLocator.h.


Member Typedef Documentation


Constructor & Destructor Documentation

vtkIncrementalPointLocator::vtkIncrementalPointLocator ( ) [protected]
virtual vtkIncrementalPointLocator::~vtkIncrementalPointLocator ( ) [protected, virtual]

Member Function Documentation

virtual const char* vtkIncrementalPointLocator::GetClassName ( ) [virtual]
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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

static vtkIncrementalPointLocator* vtkIncrementalPointLocator::SafeDownCast ( vtkObject o) [static]
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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

virtual void vtkIncrementalPointLocator::Initialize ( ) [pure virtual]

Delete the search structure.

Reimplemented from vtkLocator.

Implemented in vtkPointLocator, and vtkIncrementalOctreePointLocator.

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 vtkPointLocator, and vtkIncrementalOctreePointLocator.

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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

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, vtkPointLocator, vtkNonMergingPointLocator, and vtkMergePoints.

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.


The documentation for this class was generated from the following file: