Go to the documentation of this file.
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); }
152 friend class vtkCellPointTraversal;
154 friend class vtkCellTreeBuilder;
184 friend class vtkCellPointTraversal;
185 friend class vtkCellTreeBuilder;
214 const double origin[3],
246 friend class vtkCellPointTraversal;
248 friend class vtkCellTreeBuilder;
represent and manipulate 3D points
const float & GetRightMinValue() const
std::vector< vtkCellTreeNode > Nodes
GLboolean GLboolean GLboolean b
virtual void BuildLocatorInternal()
void SetChildren(unsigned int left)
virtual void BuildLocator()
unsigned int GetLeftChildIndex() const
#define vtkTypeMacro(thisClass, superclass)
virtual int IntersectWithLine(double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
GLint GLint GLint GLint GLint x
virtual int IntersectWithLine(double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId)
void PrintSelf(ostream &os, vtkIndent indent)
GLsizei const GLfloat * points
virtual vtkIdType FindCell(double x[3])
void MakeLeaf(unsigned int start, unsigned int size)
virtual void GenerateRepresentation(int level, vtkPolyData *pd)
virtual void FindCellsWithinBounds(double *bbox, vtkIdList *cells)
unsigned int Start() const
a simple class to control print indentation
object to represent cell connectivity
void Classify(const double origin[3], const double dir[3], double &rDist, vtkCellTreeNode *&near, vtkCellTreeNode *&mid, vtkCellTreeNode *&far, int &mustCheck)
list of point or cell ids
#define VTKFILTERSGENERAL_EXPORT
bool RayMinMaxT(const double origin[3], const double dir[3], double &rTmin, double &rTmax)
virtual void BuildLocatorIfNeeded()
virtual void FreeSearchStructure()
virtual int IntersectWithLine(double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell)
an abstract base class for locators which find cells
const float & GetLeftMaxValue() const
virtual int IntersectCellInternal(vtkIdType cell_ID, const double p1[3], const double p2[3], const double tol, double &t, double ipt[3], double pcoords[3], int &subId)
unsigned int GetDimension() const
unsigned int GetRightChildIndex() const
dynamic, self-adjusting array of vtkIdType
void MakeNode(unsigned int left, unsigned int d, float b[2])
static vtkCellTreeLocator * New()
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
std::vector< unsigned int > Leaves
virtual void ForceBuildLocator()
bool RayMinMaxT(const double bounds[6], const double origin[3], const double dir[3], double &rTmin, double &rTmax)
This class implements the data structures, construction algorithms for fast cell location presented i...
virtual vtkIdType FindCell(double pos[3], double vtkNotUsed, vtkGenericCell *cell, double pcoords[3], double *weights)
virtual int IntersectWithLine(const double p1[3], const double p2[3], vtkPoints *points, vtkIdList *cellIds)
int getDominantAxis(const double dir[3])
unsigned int Size() const