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)