35 #ifndef vtkCellLocator_h
36 #define vtkCellLocator_h
39 #include "vtkCommonDataModelModule.h"
42 VTK_ABI_NAMESPACE_BEGIN
81 int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
double x[3],
106 vtkIdType& cellId,
int& subId,
double& dist2)
override
108 this->Superclass::FindClosestPoint(x, closestPoint, cell, cellId, subId, dist2);
142 double pcoords[3],
double* weights)
override;
169 virtual int GetNumberOfBuckets();
190 inline int GetNumberOfNeighbors();
196 inline int InsertNextPoint(
int* x);
202 void GetOverlappingBuckets(
vtkNeighborCells& buckets,
const double x[3],
double dist,
203 int prevMinLevel[3],
int prevMaxLevel[3]);
205 inline void GetBucketIndices(
const double x[3],
int ijk[3]);
207 double Distance2ToBucket(
const double x[3],
int nei[3]);
208 double Distance2ToBounds(
const double x[3],
double bounds[6]);
218 int GenerateIndex(
int offset,
int numDivs,
int i,
int j,
int k,
vtkIdType& idx);
221 void ComputeOctantBounds(
double octantBounds[6],
int i,
int j,
int k);
228 VTK_ABI_NAMESPACE_END
virtual void BuildLocator()=0
Build the locator from the input dataset.
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2)
Return the closest point within a specified radius and the cell which is closest to the point x...
virtual void FindCellsWithinBounds(double *bbox, vtkIdList *cells)
Return a list of unique cell ids inside of a given bounding box.
virtual void SetNumberOfCellsPerNode(int)
Specify the preferred/maximum number of cells in each node/bucket.
an abstract base class for locators which find cells
vtkSmartPointer< vtkIdList > * Tree
std::shared_ptr< std::vector< vtkSmartPointer< vtkIdList > > > TreeSharedPtr
int GetNumberOfCellsPerBucket()
void SetNumberOfCellsPerBucket(int N)
Specify the average number of cells in each octant.
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void FreeSearchStructure()=0
Free the memory required for the spatial data structure.
provides thread-safe access to cells
virtual void FindClosestPoint(const double x[3], double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2)
Return the closest point and the cell which is closest to the point x.
dynamic, self-adjusting array of int
virtual void ShallowCopy(vtkAbstractCellLocator *)
Shallow copy of a vtkAbstractCellLocator.
octree-based spatial search object to quickly locate cells
void FindClosestPoint(const double x[3], double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2) override
Return the closest point and the cell which is closest to the point x.
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
Return intersection point (if any) of finite line with cells contained in cell locator.
a simple class to control print indentation
virtual void BuildLocatorInternal()
This function is not pure virtual to maintain backwards compatibility.
list of point or cell ids
object to represent cell connectivity
void GetPoint(int i, int j, int k, double pnt[3])
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void FindCellsAlongLine(const double p1[3], const double p2[3], double tol, vtkIdList *cells)
Take the passed line segment and intersect it with the data set.
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
represent and manipulate 3D points
virtual void ForceBuildLocator()
Build the locator from the input dataset (even if UseExistingSearchStructure is on).
vtkNew< vtkIntArray > Points
vtkIdType FindCell(double x[3])
Returns the Id of the cell containing the point, returns -1 if no cell found.