Inherits vtkAbstractCellLocator.
|
virtual int | IsA (const char *type) |
|
vtkCellLocator * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
virtual vtkIdList * | GetCells (int bucket) |
|
virtual int | GetNumberOfBuckets (void) |
|
virtual void | FindCellsWithinBounds (double *bbox, vtkIdList *cells) |
|
|
void | SetNumberOfCellsPerBucket (int N) |
|
int | GetNumberOfCellsPerBucket () |
|
|
virtual int | IntersectWithLine (double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId) |
|
|
virtual int | IntersectWithLine (double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId) |
|
|
virtual int | IntersectWithLine (const double a0[3], const double a1[3], vtkPoints *points, vtkIdList *cellIds) |
|
|
virtual int | IntersectWithLine (double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell) |
|
|
virtual void | FindClosestPoint (double x[3], double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2) |
|
|
virtual void | FindClosestPoint (double x[3], double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2) |
|
|
virtual vtkIdType | FindClosestPointWithinRadius (double x[3], double radius, double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2) |
|
|
virtual vtkIdType | FindClosestPointWithinRadius (double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2) |
|
|
virtual vtkIdType | FindClosestPointWithinRadius (double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2, int &inside) |
|
|
virtual vtkIdType | FindCell (double x[3]) |
|
|
virtual vtkIdType | FindCell (double x[3], double tol2, vtkGenericCell *GenCell, double pcoords[3], double *weights) |
|
|
virtual void | FindCellsAlongLine (double p1[3], double p2[3], double tolerance, vtkIdList *cells) |
|
|
virtual void | FreeSearchStructure () |
|
virtual void | BuildLocator () |
|
virtual void | BuildLocatorIfNeeded () |
|
virtual void | ForceBuildLocator () |
|
virtual void | BuildLocatorInternal () |
|
virtual void | GenerateRepresentation (int level, vtkPolyData *pd) |
|
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkCellLocator () |
|
| ~vtkCellLocator () |
|
void | GetBucketNeighbors (int ijk[3], int ndivs, int level) |
|
void | GetOverlappingBuckets (double x[3], int ijk[3], double dist, int prevMinLevel[3], int prevMaxLevel[3]) |
|
void | ClearCellHasBeenVisited () |
|
void | ClearCellHasBeenVisited (int id) |
|
double | Distance2ToBucket (double x[3], int nei[3]) |
|
double | Distance2ToBounds (double x[3], double bounds[6]) |
|
void | MarkParents (void *, int, int, int, int, int) |
|
void | GetChildren (int idx, int level, int children[8]) |
|
int | GenerateIndex (int offset, int numDivs, int i, int j, int k, vtkIdType &idx) |
|
void | GenerateFace (int face, int numDivs, int i, int j, int k, vtkPoints *pts, vtkCellArray *polys) |
|
void | ComputeOctantBounds (int i, int j, int k) |
|
int | IsInOctantBounds (double x[3]) |
|
octree-based spatial search object to quickly locate cells
vtkCellLocator is a spatial search object to quickly locate cells in 3D. vtkCellLocator uses a uniform-level octree subdivision, where each octant (an octant is also referred to as a bucket) carries an indication of whether it is empty or not, and each leaf octant carries a list of the cells inside of it. (An octant is not empty if it has one or more cells inside of it.) Typical operations are intersection with a line to return candidate cells, or intersection with another vtkCellLocator to return candidate cells.
- Warning
- Many other types of spatial locators have been developed, such as variable depth octrees and kd-trees. These are often more efficient for the operations described here. vtkCellLocator has been designed for subclassing; so these locators can be derived if necessary.
- See Also
- vtkLocator vtkPointLocator vtkOBBTree
- Examples:
- vtkCellLocator (Examples)
- Tests:
- vtkCellLocator (Tests)
Definition at line 51 of file vtkCellLocator.h.
virtual vtkIdType vtkCellLocator::FindClosestPointWithinRadius |
( |
double |
x[3], |
|
|
double |
radius, |
|
|
double |
closestPoint[3], |
|
|
vtkGenericCell * |
cell, |
|
|
vtkIdType & |
cellId, |
|
|
int & |
subId, |
|
|
double & |
dist2, |
|
|
int & |
inside |
|
) |
| |
|
virtual |
Return the closest point within a specified radius and the cell which is closest to the point x. The closest point is somewhere on a cell, it need not be one of the vertices of the cell. This method returns 1 if a point is found within the specified radius. If there are no cells within the specified radius, the method returns 0 and the values of closestPoint, cellId, subId, and dist2 are undefined. This version takes in a vtkGenericCell to avoid allocating and deallocating the cell. This is much faster than the version which does not take a *cell, especially when this function is called many times in a row such as by a for loop, where the allocation and dealloction can be done only once outside the for loop. If a closest point is found, "cell" contains the points and ptIds for the cell "cellId" upon exit. If a closest point is found, inside returns the return value of the EvaluatePosition call to the closest cell; inside(=1) or outside(=0). For other FindClosestPointWithinRadius signatures, see vtkAbstractCellLocator