vtkJumpAndWalkCellLocator: A new cell locator based on the Jump and Walk algorithm#
VTK used to have the concept of vtkFindCellStrategy, which could be used to find a cell containing a point.
vtkFindCellStrategy has 3 subclasses, vtkCellLocatorStrategy, vtkClosestPointStrategy, and
vtkClosestNPointStrategy. The first one was using a cell locator adaptor to find the cell, while the other two were
using a point locator and implementing the jump-and-walk algorithm to find the cell.
Having both vtkAbstractCellLocator and vtkFindCellStrategy for finding a cell was confusing, and for that reason
vtkJumpAndWalkCellLocator has been implemented as a new vtkAbstractCellLocator subclass that implements the
jump-and-walk algorithm, similarly to vtkClosest(N)PointStrategy.
Thanks to this addition, vtkCellLocatorStrategy, vtkClosestPointStrategy, and
vtkClosestNPointStrategy have been deprecated, and the desired cell locator can just be passed. It should be noted
that the following functions have been deprecated as well:
void vtkProbeFilter::SetFindCellStrategy(): UseSetCellLocator()instead.void vtkProbeFilter::SetCellLocatorProtorype(): UseSetCellLocator()instead.vtkResampleWithDataSet::SetCellLocatorPrototype: UseSetCellLocator()instead.void vtkCompositeDataProbeFilter::SetFindCellStrategyMap(): UseSetCellLocatorMap()instead.void vtkAbstractInterpolatedVelocityField::SetFindCellStrategy(): UseSetCellLocator()instead.void vtkTemporalInterpolatedVelocityField::SetFindCellStrategy(): UseSetCellLocator()instead.
Additionally, given that now there is only one FindCell abstract via vtkAbstractCellLocator, the following functions
have also been deprecated:
vtkStreamTracer::SetInterpolatorType(): UseSetCellLocator()instead.vtkStreamTracer::SetInterpolatorTypeToDataSetPointLocator(): UseSetCellLocator()instead.vtkStreamTracer::SetInterpolatorTypeToCellLocator(): UseSetCellLocator()instead.vtkStreamTracer::SetInterpolatorPrototype(): UseSetCellLocator()instead.vtkEvenlySpacedStreamlines2D::SetInterpolatorType(): UseSetCellLocator()instead.vtkEvenlySpacedStreamlines2D::SetInterpolatorTypeToDataSetPointLocator(): UseSetCellLocator()instead.vtkEvenlySpacedStreamlines2D::SetInterpolatorTypeToCellLocator(): UseSetCellLocator()instead.vtkEvenlySpacedStreamlines2D::SetInterpolatorPrototype(): UseSetCellLocator()instead.vtkVectorFieldTopology::SetInterpolatorType(): UseSetCellLocator()instead.vtkVectorFieldTopology::SetInterpolatorTypeToDataSetPointLocator(): UseSetCellLocator()instead.vtkVectorFieldTopology::SetInterpolatorTypeToCellLocator(): UseSetCellLocator()instead.vtkParticleTracerBase::SetInterpolatorType(): UseSetCellLocator()instead.vtkParticleTracerBase::SetInterpolatorTypeToDataSetPointLocator(): UseSetCellLocator()instead.vtkParticleTracerBase::SetInterpolatorTypeToCellLocator(): UseSetCellLocator()instead.
Moreover, vtkStaticPointLocator(2D) StaticOn()/Off() have been deprecated in favor of
UseExistingSearchStructureOn()/Off().
Finally, vtkPointSet::BuildLocator() has been deprecated in favor of BuildPointLocator().