39 #ifndef vtkCellTreeLocator_h 
   40 #define vtkCellTreeLocator_h 
   46 class vtkCellPointTraversal;
 
   76                                       double& t, 
double x[3], 
double pcoords[3],
 
   98       double p1[3], 
double p2[3], 
double tol, 
double& t, 
double x[3],
 
   99       double pcoords[3], 
int &subId)
 
  101       return this->Superclass::IntersectWithLine(p1, p2, tol, t, x, pcoords, subId);
 
  112       double p1[3], 
double p2[3], 
double tol, 
double &t, 
double x[3],
 
  113       double pcoords[3], 
int &subId, 
vtkIdType &cellId);
 
  119       const double p1[3], 
const double p2[3],
 
  122       return this->Superclass::IntersectWithLine(p1, p2, points, cellIds);
 
  129     { 
return this->Superclass::FindCell(x); }
 
  136     virtual void BuildLocatorInternal();
 
  137     virtual void BuildLocatorIfNeeded();
 
  138     virtual void ForceBuildLocator();
 
  152         friend class vtkCellPointTraversal;
 
  154         friend class vtkCellTreeBuilder;
 
  184         friend class vtkCellPointTraversal;
 
  185         friend class vtkCellTreeBuilder;
 
  188         void MakeNode( 
unsigned int left, 
unsigned int d, 
float b[2] );
 
  189         void SetChildren( 
unsigned int left );
 
  191         unsigned int GetLeftChildIndex() 
const;
 
  192         unsigned int GetRightChildIndex() 
const;
 
  193         unsigned int GetDimension() 
const;
 
  194         const float& GetLeftMaxValue() 
const;
 
  195         const float& GetRightMinValue() 
const;
 
  196         void MakeLeaf( 
unsigned int start, 
unsigned int size );
 
  198         unsigned int Start() 
const;
 
  199         unsigned int Size() 
const;
 
  208   bool RayMinMaxT(
const double origin[3],
 
  213   bool RayMinMaxT(
const double bounds[6],
 
  214     const double origin[3],
 
  219   int getDominantAxis(
const double dir[3]);
 
  222   void Classify(
const double origin[3],
 
  233   virtual int IntersectCellInternal( 
vtkIdType cell_ID,  
const double p1[3],
 
  246     friend class vtkCellPointTraversal;
 
  248     friend class vtkCellTreeBuilder;
 
std::vector< vtkCellTreeNode > Nodes
 
virtual void BuildLocator()=0
 
virtual void FindCellsWithinBounds(double *bbox, vtkIdList *cells)
 
an abstract base class for locators which find cells 
 
dynamic, self-adjusting array of vtkIdType 
 
concrete dataset represents vertices, lines, polygons, and triangle strips 
 
virtual void FreeSearchStructure()=0
 
provides thread-safe access to cells 
 
void PrintSelf(ostream &os, vtkIndent indent)
 
virtual int IntersectWithLine(const double p1[3], const double p2[3], vtkPoints *points, vtkIdList *cellIds)
 
a simple class to control print indentation 
 
virtual vtkIdType FindCell(double x[3])
 
list of point or cell ids 
 
#define VTKFILTERSGENERAL_EXPORT
 
std::vector< unsigned int > Leaves
 
virtual int IntersectWithLine(double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
 
object to represent cell connectivity 
 
virtual int IntersectWithLine(double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
 
This class implements the data structures, construction algorithms for fast cell location presented i...
 
virtual vtkIdType FindCell(double x[3])
 
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
 
represent and manipulate 3D points