28#ifndef vtkAbstractCellLocator_h
29#define vtkAbstractCellLocator_h
31#include "vtkCommonDataModelModule.h"
38VTK_ABI_NAMESPACE_BEGIN
98 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
99 double x[3],
double pcoords[3],
int& subId);
108 double x[3],
double pcoords[3],
int& subId,
vtkIdType& cellId);
145 const double p1[3],
const double p2[3],
double tol,
vtkPoints* points,
vtkIdList* cellIds);
172 const double x[3],
double closestPoint[3],
vtkIdType& cellId,
int& subId,
double& dist2);
192 vtkIdType& cellId,
int& subId,
double& dist2);
205 vtkIdType& cellId,
int& subId,
double& dist2);
278 const double o[3],
const double n[3],
double tol,
vtkIdList* cells);
305 double x[3],
double tol2,
vtkGenericCell* genCell,
double pcoords[3],
double* weights);
307 double pcoords[3],
double* weights);
322 double tol2,
int& subId,
double pcoords[3],
double* weights);
372 static bool IsInBounds(
const double bounds[6],
const double x[3],
double tol = 0.0);
virtual int IntersectWithLine(const double p1[3], const double p2[3], vtkPoints *points, vtkIdList *cellIds)
Take the passed line segment and intersect it with the data set.
void UpdateInternalWeights()
To be called in FindCell(double[3]).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool CacheCellBounds
vtkTimeStamp WeightsTime
This time stamp helps us decide if we want to update internal Weights array size.
vtkTypeBool RetainCellLists
virtual void ShallowCopy(vtkAbstractCellLocator *)
Shallow copy of a vtkAbstractCellLocator.
~vtkAbstractCellLocator() override
Find the cell containing a given point.
virtual void FindCellsAlongPlane(const double o[3], const double n[3], double tol, vtkIdList *cells)
Given an unbounded plane defined by an origin o[3] and unit normal n[3], return the list of unique ce...
vtkNew< vtkGenericCell > GenericCell
virtual bool StoreCellBounds()
This command is used internally by the locator to copy all cell Bounds into the internal CellBounds a...
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2)
Return the closest point within a specified radius and the cell which is closest to the point x.
void GetCellBounds(vtkIdType cellId, double *&cellBoundsPtr)
virtual vtkIdType FindCell(double x[3], vtkCell *cell, vtkGenericCell *genCell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
Find the cell containing a given point.
virtual void FindCellsWithinBounds(double *bbox, vtkIdList *cells)
Return a list of unique cell ids inside of a given bounding box.
vtkIdType FindCell(double x[3])
Returns the Id of the cell containing the point, returns -1 if no cell found.
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkPoints *points, vtkIdList *cellIds)
Take the passed line segment and intersect it with the data set.
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.
virtual bool InsideCellBounds(double x[3], vtkIdType cell_ID, double tol=0.0)
Quickly test if a point is inside the bounds of a particular cell.
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkPoints *points, vtkIdList *cellIds, vtkGenericCell *cell)
Take the passed line segment and intersect it with the data set.
virtual void FreeCellBounds()
Find the cell containing a given point.
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2, int &inside)
Return the closest point within a specified radius and the cell which is closest to the point x.
std::vector< double > Weights
This array is resized so that it can fit points from the cell hosting the most in the input data set.
static bool IsInBounds(const double bounds[6], const double x[3], double tol=0.0)
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.
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.
void ComputeCellBounds()
This function can be used either internally or externally to compute only the cached cell bounds if C...
std::shared_ptr< std::vector< double > > CellBoundsSharedPtr
virtual vtkIdType FindCell(double x[3], double tol2, vtkGenericCell *genCell, int &subId, double pcoords[3], double *weights)
Find the cell containing a given point.
vtkIdType FindCell(double x[3], double tol2)
Returns the Id of the cell containing the point within provided squared tolerance,...
vtkIdType FindCell(double x[3], double tol2, vtkGenericCell *genCell, double pcoords[3], double *weights)
Find the cell containing a given point.
virtual void FindClosestPoint(const double x[3], double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2)
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, vtkIdType &cellId)
Return intersection point (if any) AND the cell which was intersected by the finite line.
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.
vtkAbstractCellLocator()
Find the cell containing a given point.
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell)
Return intersection point (if any) AND the cell which was intersected by the finite line.
object to represent cell connectivity
abstract class to specify cell behavior
provides thread-safe access to cells
list of point or cell ids
a simple class to control print indentation
Allocate and hold a VTK object.
represent and manipulate 3D points
record modification and/or execution time