40#ifndef vtkStaticCellLocator_h
41#define vtkStaticCellLocator_h
44#include "vtkCommonDataModelModule.h"
48VTK_ABI_NAMESPACE_BEGIN
50struct vtkCellProcessor;
54 friend struct vtkCellBinner;
55 friend struct vtkCellProcessor;
74 vtkSetVector3Macro(Divisions,
int);
75 vtkGetVectorMacro(Divisions,
int, 3);
119 vtkSetMacro(UseDiagonalLengthTolerance,
bool);
121 vtkGetMacro(UseDiagonalLengthTolerance,
bool);
123 virtual
void UseDiagonalLengthToleranceOn()
125 if (this->UseDiagonalLengthTolerance !=
true)
127 this->UseDiagonalLengthTolerance =
true;
132 virtual
void UseDiagonalLengthToleranceOff()
134 if (this->UseDiagonalLengthTolerance !=
false)
136 this->UseDiagonalLengthTolerance =
false;
154 int IntersectWithLine(
const double a0[3],
const double a1[3],
double tol,
double& t,
double x[3],
179 vtkIdType& cellId,
int& subId,
double& dist2)
override
181 this->Superclass::FindClosestPoint(x, closestPoint, cell, cellId, subId, dist2);
212 const double p1[3],
const double p2[3],
double tolerance,
vtkIdList* cellsIds)
override
214 this->Superclass::FindCellsAlongLine(p1, p2, tolerance, cellsIds);
224 const double o[3],
const double n[3],
double tolerance,
vtkIdList* cells)
override;
234 double pcoords[3],
double* weights)
override;
271 bool UseDiagonalLengthTolerance =
false;
an abstract base class for locators which find cells
virtual vtkIdType FindCell(double x[3])
Returns the Id of the cell containing the point, returns -1 if no cell found.
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 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 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.
provides thread-safe access to cells
list of point or cell ids
a simple class to control print indentation
virtual void Modified()
Update the modification time for this object.
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
perform fast cell location operations
static vtkStaticCellLocator * New()
Standard methods to instantiate, print and obtain type-related information.
vtkIdType MaxNumberOfBuckets
vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2, int &inside) override
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 tolerance, vtkIdList *cellsIds) override
Take the passed line segment and intersect it with the data set.
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.
void FindCellsWithinBounds(double *bbox, vtkIdList *cells) override
Return a list of unique cell ids inside of a given bounding box.
void FindCellsAlongPlane(const double o[3], const double n[3], double tolerance, vtkIdList *cells) override
Take the passed line segment and intersect it with the data set.
void ShallowCopy(vtkAbstractCellLocator *locator) override
Shallow copy of a vtkStaticCellLocator.
int IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkPoints *points, vtkIdList *cellIds, vtkGenericCell *cell) override
Take the passed line segment and intersect it with the data set.
void BuildLocator() override
Satisfy vtkLocator abstract interface.
vtkIdType FindCell(double x[3], double vtkNotUsed(tol2), vtkGenericCell *GenCell, int &subId, double pcoords[3], double *weights) override
Find the cell containing a given point.
bool InsideCellBounds(double x[3], vtkIdType cellId) override
Quickly test if a point is inside the bounds of a particular cell.
~vtkStaticCellLocator() override
vtkCellProcessor * Processor
bool GetLargeIds()
Inform the user as to whether large ids are being used.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods to instantiate, print and obtain type-related information.
void BuildLocatorInternal() override
This function is not pure virtual to maintain backwards compatibility.
void GenerateRepresentation(int level, vtkPolyData *pd) override
Satisfy vtkLocator abstract interface.
void FreeSearchStructure() override
Satisfy vtkLocator abstract interface.
void ForceBuildLocator() override
Satisfy vtkLocator abstract interface.
int IntersectWithLine(const double a0[3], const double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell) override
Return intersection point (if any) AND the cell which was intersected by the finite line.
#define VTK_DEPRECATED_IN_9_2_0(reason)