60 BIHTree(
Mesh* mesh,
unsigned int soft_leaf_size_limit = 20);
static const double size_reduce_factor
required reduction in size of box to allow further splitting
std::vector< BoundingBox > & get_elements()
Bounding box in 3d ambient space.
const BoundingBox & tree_box()
void find_bounding_box(const BoundingBox &boundingBox, std::vector< unsigned int > &result_list)
unsigned int max_n_levels
Maximal count of BIH tree levels.
void split_node(const BoundingBox &node_box, unsigned int node_idx)
split tree node given by node_idx, distribute elements to child nodes
std::vector< BoundingBox > elements_
vector of mesh elements bounding boxes
double estimate_median(unsigned char axis, const BIHNode &node)
void element_boxes()
create bounding boxes of element
BoundingBox main_box_
Main bounding box.
void make_node(const BoundingBox &box, unsigned int node_idx)
create child nodes of node given by node_idx
unsigned int leaf_size_limit
Maximal number of elements stored in a leaf node of BIH tree.
arma::vec::fixed< spacedim > Point
static const unsigned int dimension
count of dimensions
Class for O(log N) lookup for intersections with a set of bounding boxes.
BIHTree(Mesh *mesh, unsigned int soft_leaf_size_limit=20)
std::vector< double > coors_
temporary vector stored values of coordinations for calculating median
std::vector< unsigned int > in_leaves_
vector stored element indexes in leaf nodes
unsigned int get_element_count()
void find_point(const Space< 3 >::Point &point, std::vector< unsigned int > &result_list)
static const unsigned int max_median_sample_size
max count of elements to estimate median - value must be even
std::vector< BIHNode > nodes_
vector of tree nodes