26#ifndef vtkHyperTreeGridGeometricLocator_h 
   27#define vtkHyperTreeGridGeometricLocator_h 
   29#include "vtkCommonDataModelModule.h"  
   32VTK_ABI_NAMESPACE_BEGIN
 
   77    double pcoords[3], 
double* weights) 
override;
 
   92  int IntersectWithLine(
const double p0[3], 
const double p1[3], 
double tol, 
double& t, 
double x[3],
 
  122    double x[3], 
double pcoords[3]) 
const;
 
  135  struct RecurseTreesFunctor;
 
  147  vtkIdType FindChildIndex(
unsigned int dim, 
unsigned int bf, 
const double normalizedPt[3]) 
const;
 
  164  bool ConstructCell(
const double* origin, 
const double* size, 
vtkGenericCell* cell) 
const;
 
  171  void GetZeroLevelOriginAndSize(
double* origin, 
double* sizes) 
const;
 
  176  std::vector<int> GetSortingMap(
const std::vector<double>& other) 
const;
 
  181  std::vector<double> Bins1D;
 
provides thread-safe access to cells
 
class that implements accelerated searches through HyperTree Grids (HTGs) using geometric information
 
void SetHTG(vtkHyperTreeGrid *candHTG) override
Set the vtkHyperTreeGrid to use for locating.
 
vtkIdType Search(const double point[3], vtkHyperTreeGridNonOrientedGeometryCursor *cursor)
Basic search for cell holding a given point that also return a cursor.
 
~vtkHyperTreeGridGeometricLocator() override=default
 
int IntersectWithLine(const double p0[3], const double p1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell) override
Find first intersection of the line defined by (p0, p1) with the HTG.
 
vtkHyperTreeGridGeometricLocator()=default
 
void RecurseAllIntersectsWithLine(const double p0[3], const double p1[3], double tol, vtkHyperTreeGridNonOrientedGeometryCursor *cursor, std::vector< double > *ts, vtkPoints *points, vtkIdList *cellIds, vtkGenericCell *cell) const
Recursive part of all line intersections search.
 
vtkIdType RecurseSingleIntersectWithLine(const double p0[3], const double p1[3], double tol, vtkHyperTreeGridNonOrientedGeometryCursor *cursor, vtkGenericCell *cell, double &t, int &subId, double x[3], double pcoords[3]) const
Recursive part of single line intersection search.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
int IntersectWithLine(const double p0[3], const double p1[3], double tol, vtkPoints *points, vtkIdList *cellIds, vtkGenericCell *cell) override
Find all intersections of the line defined by (p0, p1) with the HTG.
 
vtkIdType FindCell(const double point[3], double tol, vtkGenericCell *cell, int &subId, double pcoords[3], double *weights) override
Find the cell where a given point lies.
 
static vtkHyperTreeGridGeometricLocator * New()
 
vtkIdType Search(const double point[3]) override
Basic search for cell holding a given point.
 
vtkIdType RecursiveSearch(vtkHyperTreeGridNonOrientedGeometryCursor *cursor, const double pt[3])
The recursive part of the point search.
 
abstract base class for objects that implement accelerated searches through HyperTree Grids (HTGs)
 
Objects for traversal a HyperTreeGrid.
 
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
 
list of point or cell ids
 
a simple class to control print indentation
 
represent and manipulate 3D points