|
VTK
9.5.2
|
Go to the source code of this file.
Functions | |
| static vtkOBBTree * | New () |
| Construct with automatic computation of divisions, averaging 25 cells per octant. | |
| 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 about the cell which the line segment intersected. | |
| 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. | |
| 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 (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. | |
| int | InsideOrOutside (const double point[3]) |
| Determine whether a point is inside or outside the data used to build this OBB tree. | |
| int | DisjointOBBNodes (vtkOBBNode *nodeA, vtkOBBNode *nodeB, vtkMatrix4x4 *XformBtoA) |
| Returns true if nodeB and nodeA are disjoint after optional transformation of nodeB with matrix XformBtoA. | |
| int | LineIntersectsNode (vtkOBBNode *pA, const double b0[3], const double b1[3]) |
| Returns true if line intersects node. | |
| int | TriangleIntersectsNode (vtkOBBNode *pA, double p0[3], double p1[3], double p2[3], vtkMatrix4x4 *XformBtoA) |
| Returns true if triangle (optionally transformed) intersects node. | |
| 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. | |
| void | GenerateRepresentation (int level, vtkPolyData *pd) override |
| Create polygonal representation for OBB tree at specified level. | |
| vtkOBBTree () | |
| ~vtkOBBTree () override | |
| void | BuildLocatorInternal () override |
| void | ComputeOBB (vtkIdList *cells, double corner[3], double max[3], double mid[3], double min[3], double size[3]) |
| void | BuildTree (vtkIdList *cells, vtkOBBNode *parent, int level) |
| void | DeleteTree (vtkOBBNode *OBBptr) |
| void | GeneratePolygons (vtkOBBNode *OBBptr, int level, int repLevel, vtkPoints *pts, vtkCellArray *polys) |
| 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. | |
| void | FreeSearchStructure () override |
| Satisfy locator's abstract interface, see vtkLocator. | |
| void | BuildLocator () override |
| Satisfy locator's abstract interface, see vtkLocator. | |
| void | ForceBuildLocator () override |
| Satisfy locator's abstract interface, see vtkLocator. | |
Variables | |
| vtkOBBNode * | Tree |
| vtkPoints * | PointsList |
| int * | InsertedPoints |
| int | OBBCount |
| typedef vtkAbstractCellLocator | Superclass |
| static vtkTypeBool | IsTypeOf (const char *type) |
| virtual vtkTypeBool | IsA (const char *type) |
| static vtkOBBTree * | SafeDownCast (vtkObjectBase *o) |
| virtual vtkObjectBase * | NewInstanceInternal () const |
| vtkOBBTree * | NewInstance () const |
| void | PrintSelf (ostream &os, vtkIndent indent) override |
| typedef vtkAbstractCellLocator Superclass |
Definition at line 92 of file vtkOBBTree.h.
|
static |
|
virtual |
|
static |
|
protectedvirtual |
| vtkOBBTree * NewInstance | ( | ) | const |
|
override |
|
static |
Construct with automatic computation of divisions, averaging 25 cells per octant.
|
override |
Return the first intersection of the specified line segment with the OBB tree, as well as information about the cell which the line segment intersected.
A return value of 1 indicates an intersection and 0 indicates no intersection.
|
override |
Take the passed line segment and intersect it with the data set.
This method assumes that the data set is a vtkPolyData that describes a closed surface, and the intersection points that are returned in 'points' alternate between entrance points and exit points. The return value of the function is 0 if no intersections were found, -1 if point 'a0' lies inside the closed surface, or +1 if point 'a0' lies outside the closed surface. Either 'points' or 'cellIds' can be set to nullptr if you don't want to receive that information.
|
static |
Compute an OBB from the list of points given.
Return the corner point and the three axes defining the orientation of the OBB. Also return a sorted list of relative "sizes" of axes for comparison purposes.
| 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.
Return the corner point and the three axes defining the orientation of the OBB. Also return a sorted list of relative "sizes" of axes for comparison purposes.
| int InsideOrOutside | ( | const double | point[3] | ) |
Determine whether a point is inside or outside the data used to build this OBB tree.
The data must be a closed surface vtkPolyData data set. The return value is +1 if outside, -1 if inside, and 0 if undecided.
| int DisjointOBBNodes | ( | vtkOBBNode * | nodeA, |
| vtkOBBNode * | nodeB, | ||
| vtkMatrix4x4 * | XformBtoA ) |
Returns true if nodeB and nodeA are disjoint after optional transformation of nodeB with matrix XformBtoA.
| int LineIntersectsNode | ( | vtkOBBNode * | pA, |
| const double | b0[3], | ||
| const double | b1[3] ) |
Returns true if line intersects node.
| int TriangleIntersectsNode | ( | vtkOBBNode * | pA, |
| double | p0[3], | ||
| double | p1[3], | ||
| double | p2[3], | ||
| vtkMatrix4x4 * | XformBtoA ) |
Returns true if triangle (optionally transformed) intersects node.
| 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.
OBBTreeB is optionally transformed by XformBtoA before testing.
|
override |
Satisfy locator's abstract interface, see vtkLocator.
|
override |
Satisfy locator's abstract interface, see vtkLocator.
|
override |
Satisfy locator's abstract interface, see vtkLocator.
|
override |
Create polygonal representation for OBB tree at specified level.
If level < 0, then the leaf OBB nodes will be gathered. The aspect ratio (ar) and line diameter (d) are used to control the building of the representation. If a OBB node edge ratio's are greater than ar, then the dimension of the OBB is collapsed (OBB->plane->line). A "line" OBB will be represented either as two crossed polygons, or as a line, depending on the relative diameter of the OBB compared to the diameter (d).
|
protected |
|
overrideprotected |
|
overrideprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
override |
Return intersection point (if any) of finite line with cells contained in cell locator.
Line-edge intersection.
See vtkCell.h parameters documentation.
THIS FUNCTION IS NOT THREAD SAFE.
|
protected |
Definition at line 209 of file vtkOBBTree.h.
|
protected |
Definition at line 211 of file vtkOBBTree.h.
|
protected |
Definition at line 212 of file vtkOBBTree.h.
|
protected |
Definition at line 213 of file vtkOBBTree.h.