55 #ifndef __vtkOBBTree_h
56 #define __vtkOBBTree_h
77 void DebugPrintTree(
int level,
double *leaf_vol,
int *minCells,
110 double a0[3],
double a1[3],
double tol,
111 double&
t,
double x[3],
double pcoords[3],
115 IntersectWithLine(a0, a1, tol,t, x, pcoords, subId);
122 double a0[3],
double a1[3],
double tol,
123 double&
t,
double x[3],
double pcoords[3],
127 IntersectWithLine(a0, a1, tol,t, x, pcoords, subId, cellId);
149 double&
t,
double x[3],
double pcoords[3],
164 double x[3],
double closestPoint[3],
165 vtkIdType &cellId,
int &subId,
double& dist2)
168 FindClosestPoint(x, closestPoint, cellId, subId, dist2);
175 double x[3],
double closestPoint[3],
177 int &subId,
double& dist2)
180 FindClosestPoint(x, closestPoint, cell, cellId, subId, dist2);
188 double closestPoint[3],
vtkIdType &cellId,
189 int &subId,
double& dist2)
191 return Superclass::FindClosestPointWithinRadius
192 (x, radius, closestPoint, cellId, subId, dist2);
200 double closestPoint[3],
202 int &subId,
double& dist2)
204 return Superclass::FindClosestPointWithinRadius
205 (x, radius, closestPoint, cell, cellId, subId, dist2);
212 double x[3],
double radius,
double closestPoint[3],
214 int &subId,
double& dist2,
int &inside)
216 return Superclass::FindClosestPointWithinRadius
217 (x, radius, closestPoint, cell, cellId, subId, dist2, inside);
225 static void ComputeOBB(
vtkPoints *pts,
double corner[3],
double max[3],
226 double mid[3],
double min[3],
double size[3]);
235 double mid[3],
double min[3],
double size[3]);
242 int InsideOrOutside(
const double point[3]);
254 int LineIntersectsNode(
vtkOBBNode *pA,
double b0[3],
double b1[3] );
259 double p0[3],
double p1[3],
299 void ComputeOBB(
vtkIdList *cells,
double corner[3],
double max[3],
300 double mid[3],
double min[3],
double size[3]);
virtual void BuildLocator()=0
virtual void FindClosestPoint(double x[3], double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2)
represent and manipulate 4x4 transformation matrices
GLenum GLenum GLenum input
abstract class to specify dataset behavior
an abstract base class for locators which find cells
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2, int &inside)
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkIdType &cellId, int &subId, double &dist2)
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void FreeSearchStructure()=0
#define vtkTypeMacro(thisClass, superclass)
provides thread-safe access to cells
generate oriented bounding box (OBB) tree
void PrintSelf(ostream &os, vtkIndent indent)
GLint GLint GLint GLint GLint x
virtual int IntersectWithLine(double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId)
a simple class to control print indentation
list of point or cell ids
#define VTKFILTERSGENERAL_EXPORT
virtual void FindClosestPoint(double x[3], double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2)
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
GLsizei const GLfloat * points
virtual vtkIdType FindClosestPointWithinRadius(double x[3], double radius, double closestPoint[3], vtkGenericCell *cell, vtkIdType &cellId, int &subId, double &dist2)
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
represent and manipulate 3D points
virtual int IntersectWithLine(double a0[3], double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId)