28 #ifndef vtkAbstractCellLocator_h
29 #define vtkAbstractCellLocator_h
31 #include "vtkCommonDataModelModule.h"
38 VTK_ABI_NAMESPACE_BEGIN
58 vtkSetClampMacro(NumberOfCellsPerNode,
int, 1,
VTK_INT_MAX);
59 vtkGetMacro(NumberOfCellsPerNode,
int);
79 void ComputeCellBounds();
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);
107 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
108 double x[3],
double pcoords[3],
int& subId,
vtkIdType& cellId);
118 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
132 virtual int IntersectWithLine(
144 virtual int IntersectWithLine(
158 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
171 virtual void FindClosestPoint(
172 const double x[3],
double closestPoint[3],
vtkIdType& cellId,
int& subId,
double& dist2);
191 virtual void FindClosestPoint(
const double x[3],
double closestPoint[3],
vtkGenericCell* cell,
192 vtkIdType& cellId,
int& subId,
double& dist2);
204 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
205 vtkIdType& cellId,
int& subId,
double& dist2);
223 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
244 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
253 virtual void FindCellsWithinBounds(
double* bbox,
vtkIdList* cells);
266 void FindCellsAlongLine(
const double p1[3],
const double p2[3],
double tol,
vtkIdList* cells);
277 virtual void FindCellsAlongPlane(
278 const double o[3],
const double n[3],
double tol,
vtkIdList* cells);
294 vtkIdType FindCell(
double x[3],
double tol2);
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);
329 virtual bool InsideCellBounds(
double x[3],
vtkIdType cell_ID,
double tol = 0.0);
350 virtual bool StoreCellBounds();
351 virtual void FreeCellBounds();
358 void UpdateInternalWeights();
372 static bool IsInBounds(
const double bounds[6],
const double x[3],
double tol = 0.0);
378 void GetCellBounds(
vtkIdType cellId,
double*& cellBoundsPtr);
393 VTK_ABI_NAMESPACE_END
record modification and/or execution time
an abstract base class for locators which find cells
abstract base class for objects that accelerate spatial searches
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type and print methods.
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...
vtkTypeBool CacheCellBounds
std::shared_ptr< std::vector< double > > CellBoundsSharedPtr
provides thread-safe access to cells
abstract class to specify cell behavior
virtual void ShallowCopy(vtkAbstractCellLocator *)
Shallow copy of a vtkAbstractCellLocator.
a simple class to control print indentation
vtkNew< vtkGenericCell > GenericCell
list of point or cell ids
vtkTimeStamp WeightsTime
This time stamp helps us decide if we want to update internal Weights array size. ...
object to represent cell connectivity
vtkTypeBool RetainCellLists
represent and manipulate 3D points