40 #ifndef vtkAbstractCellLocator_h
41 #define vtkAbstractCellLocator_h
43 #include "vtkCommonDataModelModule.h"
69 vtkSetClampMacro(NumberOfCellsPerNode,
int, 1,
VTK_INT_MAX);
70 vtkGetMacro(NumberOfCellsPerNode,
int);
90 void ComputeCellBounds();
115 virtual
void LazyEvaluationOn() {}
117 virtual
void LazyEvaluationOff() {}
126 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
127 double x[3],
double pcoords[3],
int& subId);
135 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
136 double x[3],
double pcoords[3],
int& subId,
vtkIdType& cellId);
146 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
164 virtual int IntersectWithLine(
176 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
const double tol,
190 virtual int IntersectWithLine(
const double p1[3],
const double p2[3],
const double tol,
203 virtual void FindClosestPoint(
204 const double x[3],
double closestPoint[3],
vtkIdType& cellId,
int& subId,
double& dist2);
218 virtual void FindClosestPoint(
const double x[3],
double closestPoint[3],
vtkGenericCell* cell,
219 vtkIdType& cellId,
int& subId,
double& dist2);
231 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
232 vtkIdType& cellId,
int& subId,
double& dist2);
246 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
263 virtual vtkIdType FindClosestPointWithinRadius(
double x[3],
double radius,
double closestPoint[3],
272 virtual void FindCellsWithinBounds(
double* bbox,
vtkIdList* cells);
285 virtual void FindCellsAlongLine(
286 const double p1[3],
const double p2[3],
double tolerance,
vtkIdList* cells);
297 virtual void FindCellsAlongPlane(
298 const double o[3],
const double n[3],
double tolerance,
vtkIdList* cells);
317 double x[3],
double tol2,
vtkGenericCell* GenCell,
double pcoords[3],
double* weights);
319 double pcoords[3],
double* weights);
327 virtual bool InsideCellBounds(
double x[3],
vtkIdType cell_ID);
346 virtual bool StoreCellBounds();
347 virtual void FreeCellBounds();
354 void UpdateInternalWeights();
368 static bool IsInBounds(
const double bounds[6],
const double x[3],
const double tol = 0.0);
374 void GetCellBounds(
vtkIdType cellId,
double*& cellBoundsPtr);
#define VTK_DEPRECATED_IN_9_2_0(reason)
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
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