#include <bvh_tree.hpp>
Public Types | |
typedef _Entity_handles | Entity_handles |
typedef _Box | Box |
typedef _Moab | Moab |
typedef _Parametrizer | Parametrizer |
typedef Entity_handles::value_type | Entity_handle |
Public Member Functions | |
Bvh_tree (Entity_handles &_entities, Moab &_moab, Box &_bounding_box, Parametrizer &_entity_contains) | |
Bvh_tree (Self &s) | |
template<typename Box > | |
std::size_t | bucket_index (const Box &box, const Box &interval, const std::size_t dim) const |
template<typename Iterator , typename Bounding_box , typename Buckets > | |
void | establish_buckets (const Iterator begin, const Iterator end, const Bounding_box &interval, Buckets &buckets) const |
template<typename Box , typename Iterator > | |
std::size_t | set_interval (Box &interval, const Iterator begin, const Iterator end) const |
template<typename Splits , typename Buckets , typename Split_data > | |
void | initialize_splits (Splits &splits, const Buckets &buckets, const Split_data &data) const |
template<typename Iterator , typename Split_data > | |
void | order_elements (const Iterator &begin, const Iterator &end, const Split_data &data) const |
template<typename Iterator , typename Split_data > | |
void | median_order (const Iterator &begin, const Iterator &end, Split_data &data) const |
template<typename Splits , typename Split_data > | |
void | choose_best_split (const Splits &splits, Split_data &data) const |
template<typename Iterator , typename Split_data > | |
void | find_split (const Iterator &begin, const Iterator &end, Split_data &data) const |
template<typename Vector , typename Result > | |
Result & | find (const Vector &point, const double tol, Result &result) const |
template<typename Vector > | |
Entity_handle | bruteforce_find (const Vector &point, const double tol) const |
Private Types | |
typedef Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer > | Self |
typedef std::pair< Box, Entity_handle > | Leaf_element |
typedef _bvh::_Node< Box, Entity_handle > | Node |
typedef std::vector< Node > | Nodes |
Private Member Functions | |
template<typename Iterator > | |
int | build_tree (const Iterator begin, const Iterator end, const int index, const Box &box, const int depth=0) |
template<typename Vector , typename Node_index , typename Result > | |
Result & | _find_point (const Vector &point, const Node_index &index, const double tol, Result &result) const |
Private Attributes | |
const Entity_handles & | entity_handles_ |
Nodes | tree_ |
Moab & | moab |
Box | bounding_box |
Parametrizer & | entity_contains |
Definition at line 152 of file bvh_tree.hpp.
typedef _Box moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Box |
Definition at line 157 of file bvh_tree.hpp.
typedef Entity_handles::value_type moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Entity_handle |
Definition at line 160 of file bvh_tree.hpp.
typedef _Entity_handles moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Entity_handles |
Definition at line 156 of file bvh_tree.hpp.
|
private |
Definition at line 165 of file bvh_tree.hpp.
typedef _Moab moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Moab |
Definition at line 158 of file bvh_tree.hpp.
|
private |
Definition at line 166 of file bvh_tree.hpp.
|
private |
Definition at line 167 of file bvh_tree.hpp.
typedef _Parametrizer moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Parametrizer |
Definition at line 159 of file bvh_tree.hpp.
|
private |
Definition at line 164 of file bvh_tree.hpp.
|
inline |
Definition at line 171 of file bvh_tree.hpp.
References moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bounding_box, moab::common_tree::box_contains_box(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::build_tree(), moab::common_tree::construct_element_map(), moab::common_tree::construct_ordering(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::entity_handles_, and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::tree_.
|
inline |
Definition at line 234 of file bvh_tree.hpp.
|
inlineprivate |
Definition at line 679 of file bvh_tree.hpp.
References moab::common_tree::box_contains_point(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::entity_contains, and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::tree_.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find().
|
inline |
Definition at line 761 of file bvh_tree.hpp.
References moab::common_tree::box_contains_point(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::entity_contains, and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::tree_.
|
inline |
Definition at line 247 of file bvh_tree.hpp.
References center(), dim, length(), and NUM_BUCKETS.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::establish_buckets(), and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::order_elements().
|
inlineprivate |
Definition at line 639 of file bvh_tree.hpp.
References moab::common_tree::assign_entities(), moab::common_tree::box_contains_box(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split(), SMAX, and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::tree_.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Bvh_tree().
|
inline |
Definition at line 498 of file bvh_tree.hpp.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split().
|
inline |
Definition at line 267 of file bvh_tree.hpp.
References moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bounding_box, moab::common_tree::box_contains_box(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bucket_index(), dim, NUM_DIM, and moab::common_tree::update_bounding_box().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split().
|
inline |
Definition at line 752 of file bvh_tree.hpp.
References moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::_find_point().
|
inline |
Definition at line 515 of file bvh_tree.hpp.
References moab::common_tree::box_contains_box(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::choose_best_split(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::establish_buckets(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::initialize_splits(), left_box, moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::median_order(), NUM_BUCKETS, NUM_DIM, NUM_SPLITS, moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::order_elements(), right_box, and moab::common_tree::update_bounding_box().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::build_tree().
|
inline |
Definition at line 380 of file bvh_tree.hpp.
References moab::common_tree::box_contains_box(), NUM_DIM, moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::set_interval(), and moab::common_tree::update_bounding_box().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split().
|
inline |
Definition at line 451 of file bvh_tree.hpp.
References moab::common_tree::box_contains_box(), center(), moab::common_tree::compute_box_center(), and moab::common_tree::update_bounding_box().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split().
|
inline |
Definition at line 439 of file bvh_tree.hpp.
References moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bucket_index().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::find_split().
|
inline |
Definition at line 355 of file bvh_tree.hpp.
References moab::GeomUtil::first(), and moab::common_tree::update_bounding_box().
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::initialize_splits().
|
private |
Definition at line 794 of file bvh_tree.hpp.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Bvh_tree(), and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::establish_buckets().
|
private |
Definition at line 795 of file bvh_tree.hpp.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::_find_point(), and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bruteforce_find().
|
private |
Definition at line 791 of file bvh_tree.hpp.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Bvh_tree().
|
private |
Definition at line 793 of file bvh_tree.hpp.
|
private |
Definition at line 792 of file bvh_tree.hpp.
Referenced by moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::_find_point(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bruteforce_find(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::build_tree(), and moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::Bvh_tree().