52#ifndef vtkStaticCellLocator_h
53#define vtkStaticCellLocator_h
56#include "vtkCommonDataModelModule.h"
61struct vtkCellProcessor;
65 friend struct vtkCellBinner;
66 friend struct vtkCellProcessor;
85 vtkSetVector3Macro(Divisions,
int);
86 vtkGetVectorMacro(Divisions,
int, 3);
130 vtkSetMacro(UseDiagonalLengthTolerance,
bool);
132 vtkGetMacro(UseDiagonalLengthTolerance,
bool);
134 virtual
void UseDiagonalLengthToleranceOn()
136 if (this->UseDiagonalLengthTolerance !=
true)
138 this->UseDiagonalLengthTolerance =
true;
143 virtual
void UseDiagonalLengthToleranceOff()
145 if (this->UseDiagonalLengthTolerance !=
false)
147 this->UseDiagonalLengthTolerance =
false;
165 int IntersectWithLine(
const double a0[3],
const double a1[3],
double tol,
double& t,
double x[3],
190 vtkIdType& cellId,
int& subId,
double& dist2)
override
192 this->Superclass::FindClosestPoint(x, closestPoint, cell, cellId, subId, dist2);
223 const double p1[3],
const double p2[3],
double tolerance,
vtkIdList* cellsIds)
override
225 this->Superclass::FindCellsAlongLine(p1, p2, tolerance, cellsIds);
235 const double o[3],
const double n[3],
double tolerance,
vtkIdList* cells)
override;
245 double pcoords[3],
double* weights)
override;
282 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], const 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)