Go to the documentation of this file.
59 #include "vtkFiltersGeneralModule.h"
123 double& t,
double x[3],
double pcoords[3],
132 double mid[3],
double min[3],
double size[3]);
141 double mid[3],
double min[3],
double size[3]);
166 double p0[3],
double p1[3],
207 double mid[3],
double min[3],
double size[3]);
represent and manipulate 3D points
void DeleteTree(vtkOBBNode *OBBptr)
int IntersectWithLine(const double a0[3], const double a1[3], vtkPoints *points, vtkIdList *cellIds) override
Take the passed line segment and intersect it with the data set.
void BuildLocator() override
Build the locator from the input dataset.
int IntersectWithLine(const double a0[3], const double a1[3], double tol, double &t, double x[3], double pcoords[3], int &subId, vtkIdType &cellId, vtkGenericCell *cell) override
Return the first intersection of the specified line segment with the OBB tree, as well as information...
generate oriented bounding box (OBB) tree
static vtkOBBTree * New()
Construct with automatic computation of divisions, averaging 25 cells per octant.
void ComputeOBB(vtkDataSet *input, double corner[3], double max[3], double mid[3], double min[3], double size[3])
Compute an OBB for the input dataset using the cells in the data.
void BuildTree(vtkIdList *cells, vtkOBBNode *parent, int level)
void GeneratePolygons(vtkOBBNode *OBBptr, int level, int repLevel, vtkPoints *pts, vtkCellArray *polys)
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
object to represent cell connectivity
int LineIntersectsNode(vtkOBBNode *pA, const double b0[3], const double b1[3])
Returns true if line intersects node.
list of point or cell ids
int IntersectWithOBBTree(vtkOBBTree *OBBTreeB, vtkMatrix4x4 *XformBtoA, int(*function)(vtkOBBNode *nodeA, vtkOBBNode *nodeB, vtkMatrix4x4 *Xform, void *arg), void *data_arg)
For each intersecting leaf node pair, call function.
an abstract base class for locators which find cells
abstract class to specify dataset behavior
int DisjointOBBNodes(vtkOBBNode *nodeA, vtkOBBNode *nodeB, vtkMatrix4x4 *XformBtoA)
Returns true if nodeB and nodeA are disjoint after optional transformation of nodeB with matrix Xform...
void FreeSearchStructure() override
Satisfy locator's abstract interface, see vtkLocator.
int InsideOrOutside(const double point[3])
Determine whether a point is inside or outside the data used to build this OBB tree.
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
Return intersection point (if any) of finite line with cells contained in cell locator.
static void ComputeOBB(vtkPoints *pts, double corner[3], double max[3], double mid[3], double min[3], double size[3])
Compute an OBB from the list of points given.
void ComputeOBB(vtkIdList *cells, double corner[3], double max[3], double mid[3], double min[3], double size[3])
concrete dataset represents vertices, lines, polygons, and triangle strips
void GenerateRepresentation(int level, vtkPolyData *pd) override
Create polygonal representation for OBB tree at specified level.
provides thread-safe access to cells
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void DebugPrintTree(int level, double *leaf_vol, int *minCells, int *maxCells)
int TriangleIntersectsNode(vtkOBBNode *pA, double p0[3], double p1[3], double p2[3], vtkMatrix4x4 *XformBtoA)
Returns true if triangle (optionally transformed) intersects node.