|
TR-mbed 1.0
|
A simple bounding volume hierarchy based on AlignedBox. More...
#include <KdBVH.h>
Public Types | |
| enum | { Dim = _Dim } |
| typedef _Object | Object |
| typedef std::vector< Object, aligned_allocator< Object > > | ObjectList |
| typedef _Scalar | Scalar |
| typedef AlignedBox< Scalar, Dim > | Volume |
| typedef std::vector< Volume, aligned_allocator< Volume > > | VolumeList |
| typedef int | Index |
| typedef const int * | VolumeIterator |
| typedef const Object * | ObjectIterator |
Public Member Functions | |
| KdBVH () | |
| template<typename Iter > | |
| KdBVH (Iter begin, Iter end) | |
| template<typename OIter , typename BIter > | |
| KdBVH (OIter begin, OIter end, BIter boxBegin, BIter boxEnd) | |
| template<typename Iter > | |
| void | init (Iter begin, Iter end) |
| template<typename OIter , typename BIter > | |
| void | init (OIter begin, OIter end, BIter boxBegin, BIter boxEnd) |
| Index | getRootIndex () const |
| EIGEN_STRONG_INLINE void | getChildren (Index index, VolumeIterator &outVBegin, VolumeIterator &outVEnd, ObjectIterator &outOBegin, ObjectIterator &outOEnd) const |
| const Volume & | getVolume (Index index) const |
A simple bounding volume hierarchy based on AlignedBox.
| _Scalar | The underlying scalar type of the bounding boxes |
| _Dim | The dimension of the space in which the hierarchy lives |
| _Object | The object type that lives in the hierarchy. It must have value semantics. Either bounding_box(_Object) must be defined and return an AlignedBox<_Scalar, _Dim> or bounding boxes must be provided to the tree initializer. |
This class provides a simple (as opposed to optimized) implementation of a bounding volume hierarchy analogous to a Kd-tree. Given a sequence of objects, it computes their bounding boxes, constructs a Kd-tree of their centers and builds a BVH with the structure of that Kd-tree. When the elements of the tree are too expensive to be copied around, it is useful for _Object to be a pointer.
| typedef int Eigen::KdBVH< _Scalar, _Dim, _Object >::Index |
| typedef _Object Eigen::KdBVH< _Scalar, _Dim, _Object >::Object |
| typedef const Object* Eigen::KdBVH< _Scalar, _Dim, _Object >::ObjectIterator |
| typedef std::vector<Object, aligned_allocator<Object> > Eigen::KdBVH< _Scalar, _Dim, _Object >::ObjectList |
| typedef _Scalar Eigen::KdBVH< _Scalar, _Dim, _Object >::Scalar |
| typedef AlignedBox<Scalar, Dim> Eigen::KdBVH< _Scalar, _Dim, _Object >::Volume |
| typedef const int* Eigen::KdBVH< _Scalar, _Dim, _Object >::VolumeIterator |
| typedef std::vector<Volume, aligned_allocator<Volume> > Eigen::KdBVH< _Scalar, _Dim, _Object >::VolumeList |
| anonymous enum |
|
inline |
|
inline |
Given an iterator range over Object references, constructs the BVH. Requires that bounding_box(Object) return a Volume.
|
inline |
Given an iterator range over Object references and an iterator range over their bounding boxes, constructs the BVH
|
inline |
Given an index of a node, on exit, outVBegin and outVEnd range over the indices of the volume children of the node and outOBegin and outOEnd range over the object children of the node
|
inline |
|
inline |
|
inline |
Given an iterator range over Object references, constructs the BVH, overwriting whatever is in there currently. Requires that bounding_box(Object) return a Volume.
|
inline |
Given an iterator range over Object references and an iterator range over their bounding boxes, constructs the BVH, overwriting whatever is in there currently.