55 #ifndef __vtkOBBTree_h
56 #define __vtkOBBTree_h
76 void DebugPrintTree(
int level,
double *leaf_vol,
int *minCells,
105 double a0[3],
double a1[3],
double tol,
106 double& t,
double x[3],
double pcoords[3],
110 IntersectWithLine(a0, a1, tol,t, x, pcoords, subId);
117 double a0[3],
double a1[3],
double tol,
118 double& t,
double x[3],
double pcoords[3],
122 IntersectWithLine(a0, a1, tol,t, x, pcoords, subId, cellId);
144 double& t,
double x[3],
double pcoords[3],
159 double x[3],
double closestPoint[3],
160 vtkIdType &cellId,
int &subId,
double& dist2)
163 FindClosestPoint(x, closestPoint, cellId, subId, dist2);
170 double x[3],
double closestPoint[3],
172 int &subId,
double& dist2)
175 FindClosestPoint(x, closestPoint, cell, cellId, subId, dist2);
182 double x[3],
double radius,
183 double closestPoint[3],
vtkIdType &cellId,
184 int &subId,
double& dist2)
186 return Superclass::FindClosestPointWithinRadius
187 (x, radius, closestPoint, cellId, subId, dist2);
194 double x[3],
double radius,
195 double closestPoint[3],
197 int &subId,
double& dist2)
199 return Superclass::FindClosestPointWithinRadius
200 (x, radius, closestPoint, cell, cellId, subId, dist2);
207 double x[3],
double radius,
double closestPoint[3],
209 int &subId,
double& dist2,
int &inside)
211 return Superclass::FindClosestPointWithinRadius
212 (x, radius, closestPoint, cell, cellId, subId, dist2, inside);
220 static void ComputeOBB(
vtkPoints *pts,
double corner[3],
double max[3],
221 double mid[3],
double min[3],
double size[3]);
229 void ComputeOBB(
vtkDataSet *input,
double corner[3],
double max[3],
230 double mid[3],
double min[3],
double size[3]);
237 int InsideOrOutside(
const double point[3]);
249 int LineIntersectsNode(
vtkOBBNode *pA,
double b0[3],
double b1[3] );
254 double p0[3],
double p1[3],
294 void ComputeOBB(
vtkIdList *cells,
double corner[3],
double max[3],
295 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
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
provides thread-safe access to cells
generate oriented bounding box (OBB) tree
void PrintSelf(ostream &os, vtkIndent indent)
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
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
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)