![]() |
open_iA
2019.12
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
|
Class representing a BSP-tree node. AABB specified BSP-tree node. More...
#include <iABSPTree.h>
Public Member Functions | |
| int | axisInd () const |
| int | DistributePrims (int &level, int &max_level, iAaabb &m_aabb, std::vector< iABSPNode * > &nodes, std::vector< unsigned int > &tri_ind, std::vector< iATriPrim * > &parent_tris, unsigned int tri_start_ind) |
| Splits current node's AABB. More... | |
| int | DistributePrimsSAH (int &level, int &max_level, iAaabb &m_aabb, std::vector< iABSPNode * > &nodes, std::vector< unsigned int > &tri_ind, std::vector< iATriPrim * > &parent_tris, unsigned int tri_start_ind) |
| iABSPNode * | get_left (const std::vector< iABSPNode * > &nodes) |
| iABSPNode * | get_left (std::vector< iABSPNode * > &nodes) |
| iABSPNode * | get_right (const std::vector< iABSPNode * > &nodes) |
| iABSPNode * | get_right (std::vector< iABSPNode * > &nodes) |
| bool | has_left () const |
| bool | has_right () const |
| iABSPNode () | |
| bool | isLeaf () const |
| unsigned int | offset () |
| void | set_has_left (bool has) |
| void | set_has_right (bool has) |
| void | set_offset (unsigned int val) |
| void | set_splitCoord (float val) |
| void | set_tri_count (unsigned int val) |
| void | set_tri_start (unsigned int val) |
| void | setAxisInd (int index) |
| void | setLeaf (bool a_isLeaf) |
| int | Split (iAaabb const &p_aabb, iAaabb &l_aabb, iAaabb &r_aabb) |
| Splits current node's AABB by maximum dimension. More... | |
| float & | splitCoord () |
| int | SplitSAH (iAaabb &p_aabb, iAaabb &l_aabb, iAaabb &r_aabb, unsigned int axis_index, float bound) |
| unsigned int | tri_count () |
| unsigned int | tri_start () |
| ~iABSPNode () | |
Public Attributes | |
| unsigned int | internal1 |
| unsigned int | internal2 |
| shared data, depends if node is leaf or not More... | |
| unsigned int | masked_vars |
| Is this node a leaf-node first bit – is leaf, has left, has right, else – axis index. More... | |
Class representing a BSP-tree node. AABB specified BSP-tree node.
|
inline |
|
inline |
|
inline |
|
inline |
Splits current node's AABB.
Creates two child-nodes with derived AABBs and distributes primitives from current node primitives vector among two child-nodes. Recursively called for child-nodes. Stops if maximum level is reached. If current node does not have any primitives, recursion is stopped.
| level | level of current node. |
| max_level | nodes with max_level are leafs. |
| m_aabb | node's aabb |
| nodes | vector of all tree nodes |
| tri_ind | vector of index-triangle mapping array |
| parent_tris | |
| tri_start_ind |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Splits current node's AABB by maximum dimension.
Creates two child-nodes with derived AABBs.
| [in] | p_aabb | parent's aabb |
| [out] | l_aabb | left child's aabb |
| [out] | r_aabb | right child's aabb |
|
inline |
|
inline |
|
inline |
|
inline |
| unsigned int iABSPNode::internal1 |
| unsigned int iABSPNode::internal2 |
shared data, depends if node is leaf or not
| unsigned int iABSPNode::masked_vars |
Is this node a leaf-node first bit – is leaf, has left, has right, else – axis index.
1.8.16