Spec-Zone.ru › Eigen3

Eigen::KdBVH

template<typename _Scalar, int _Dim, typename _Object>
class Eigen::KdBVH< _Scalar, _Dim, _Object >

Простая иерархия объёмных элементов, основанная на AlignedBox.

Параметры
_Scalar Базовый скалярный тип ограничивающих прямоугольников
_Dim Размерность пространства, в котором существует иерархия
_Object Тип объекта, находящегося в иерархии. Он должен иметь семантику значения. Должен быть определён метод bounding_box(_Object) возвращающий AlignedBox<_Scalar, _Dim> или ограничивающие прямоугольники должны быть предоставлены инициализатору дерева.

Этот класс предоставляет простое (в отличие от оптимизированного) реализацию иерархии объёмных элементов, аналогичной Kd-дереву. Принимая последовательность объектов, он вычисляет их ограничивающие прямоугольники, строит Kd-дерево из центров объектов и создаёт BVH со структурой этого Kd-дерева. Если копирование элементов дерева слишком затратно, удобно использовать указатели на _Object.

void getChildren (Index index, VolumeIterator &outVBegin, VolumeIterator &outVEnd, ObjectIterator &outOBegin, ObjectIterator &outOEnd) const
Index getRootIndex () const
const Volume & getVolume (Index index) const
template<typename Iter >
void init (Iter begin, Iter end)
template<typename OIter , typename BIter >
void init (OIter begin, OIter end, BIter boxBegin, BIter boxEnd)
template<typename Iter >
KdBVH (Iter begin, Iter end)
template<typename OIter , typename BIter >
KdBVH (OIter begin, OIter end, BIter boxBegin, BIter boxEnd)

KdBVH() [1/2]

template<typename _Scalar , int _Dim, typename _Object >
template<typename Iter >
Eigen::KdBVH< _Scalar, _Dim, _Object >::KdBVH ( Iter begin,
Iter end
)
inline

Создаёт BVH, принимая диапазон итераторов на ссылки Object. Требуется, чтобы bounding_box(Object) возвращало Volume.

KdBVH() [2/2]

template<typename _Scalar , int _Dim, typename _Object >
template<typename OIter , typename BIter >
Eigen::KdBVH< _Scalar, _Dim, _Object >::KdBVH ( OIter begin,
OIter end,
BIter boxBegin,
BIter boxEnd
)
inline

Создаёт BVH, принимая диапазон итераторов на ссылки Object и их ограничивающие прямоугольники.

getChildren()

template<typename _Scalar , int _Dim, typename _Object >
void Eigen::KdBVH< _Scalar, _Dim, _Object >::getChildren ( Index index,
VolumeIterator & outVBegin,
VolumeIterator & outVEnd,
ObjectIterator & outOBegin,
ObjectIterator & outOEnd
) const
inline

По указанному index узла, на выходе outVBegin и outVEnd будут содержать индексы дочерних элементов узла (объём), а outOBegin и outOEnd - индексы дочерних объектов.

getRootIndex()

template<typename _Scalar , int _Dim, typename _Object >
Index Eigen::KdBVH< _Scalar, _Dim, _Object >::getRootIndex ( ) const
inline
Возвращает
индекс корня иерархии

getVolume()

template<typename _Scalar , int _Dim, typename _Object >
const Volume& Eigen::KdBVH< _Scalar, _Dim, _Object >::getVolume ( Index index ) const
inline
Возвращает
ограничивающий прямоугольник узла с указанным index

init() [1/2]

template<typename _Scalar , int _Dim, typename _Object >
template<typename Iter >
void Eigen::KdBVH< _Scalar, _Dim, _Object >::init ( Iter begin,
Iter end
)
inline

Создаёт BVH, принимая диапазон итераторов на ссылки Object, перезаписывая текущие данные. Требуется, чтобы bounding_box(Object) возвращало Volume.

init() [2/2]

template<typename _Scalar , int _Dim, typename _Object >
template<typename OIter , typename BIter >
void Eigen::KdBVH< _Scalar, _Dim, _Object >::init ( OIter begin,
OIter end,
BIter boxBegin,
BIter boxEnd
)
inline

Создаёт BVH, принимая диапазон итераторов на ссылки Object и их ограничивающие прямоугольники, перезаписывая текущие данные.


The documentation for this class was generated from the following file:
  • KdBVH.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1KdBVH.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API