|
Blender V4.3
|
#include <node.h>
Inherited by InnerNode, and LeafNode.
Public Member Functions | |
| virtual | ~BVHNode () |
| virtual bool | is_leaf () const =0 |
| virtual int | num_children () const =0 |
| virtual BVHNode * | get_child (int i) const =0 |
| virtual int | num_triangles () const |
| virtual void | print (int depth=0) const =0 |
| void | set_aligned_space (const Transform &aligned_space) |
| Transform | get_aligned_space () const |
| bool | has_unaligned () const |
| int | getSubtreeSize (BVH_STAT stat=BVH_STAT_NODE_COUNT) const |
| float | computeSubtreeSAHCost (const BVHParams &p, float probability=1.0f) const |
| void | deleteSubtree () |
| uint | update_visibility () |
| void | update_time () |
| void | dump_graph (const char *filename) |
Public Attributes | |
| struct BVHNode ** | children |
| struct BVHNode * | parent |
| float * | bv |
| int | index |
| char | node_num |
| char | main_axis |
| BoundBox | bounds |
| uint | visibility |
| bool | is_unaligned |
| Transform * | aligned_space |
| float | time_from |
| float | time_to |
Protected Member Functions | |
| BVHNode (const BoundBox &bounds) | |
| BVHNode (const BVHNode &other) | |
Definition at line 64 of file BLI_kdopbvh.c.
|
inlinevirtual |
Definition at line 35 of file bvh/node.h.
References aligned_space.
|
inlineexplicitprotected |
Definition at line 106 of file bvh/node.h.
|
inlineexplicitprotected |
Definition at line 116 of file bvh/node.h.
References aligned_space, and NULL.
Definition at line 108 of file bvh/node.cpp.
References bounds, computeSubtreeSAHCost(), BVHParams::cost(), get_child(), num_children(), num_triangles(), and BoundBox::safe_area().
Referenced by computeSubtreeSAHCost().
| void BVHNode::deleteSubtree | ( | ) |
Definition at line 97 of file bvh/node.cpp.
References deleteSubtree(), get_child(), and num_children().
Referenced by BVH2::build(), deleteSubtree(), and BVHBuild::run().
| void BVHNode::dump_graph | ( | const char * | filename | ) |
Definition at line 181 of file bvh/node.cpp.
References NULL.
|
inline |
Definition at line 60 of file bvh/node.h.
References aligned_space, NULL, and transform_identity().
Referenced by BVH2::pack_unaligned_inner().
Implemented in InnerNode, and LeafNode.
Referenced by computeSubtreeSAHCost(), deleteSubtree(), getSubtreeSize(), and has_unaligned().
| CCL_NAMESPACE_BEGIN int BVHNode::getSubtreeSize | ( | BVH_STAT | stat = BVH_STAT_NODE_COUNT | ) | const |
Definition at line 19 of file bvh/node.cpp.
References BVH_STAT_ALIGNED_COUNT, BVH_STAT_ALIGNED_INNER_COUNT, BVH_STAT_ALIGNED_LEAF_COUNT, BVH_STAT_CHILDNODE_COUNT, BVH_STAT_DEPTH, BVH_STAT_INNER_COUNT, BVH_STAT_LEAF_COUNT, BVH_STAT_NODE_COUNT, BVH_STAT_TRIANGLE_COUNT, BVH_STAT_UNALIGNED_COUNT, BVH_STAT_UNALIGNED_INNER_COUNT, BVH_STAT_UNALIGNED_LEAF_COUNT, get_child(), getSubtreeSize(), has_unaligned(), is_leaf(), is_unaligned, max, num_children(), and num_triangles().
Referenced by getSubtreeSize(), BVH2::pack_nodes(), and BVHBuild::run().
|
inline |
Definition at line 68 of file bvh/node.h.
References get_child(), is_leaf(), is_unaligned, and num_children().
Referenced by getSubtreeSize(), and BVH2::pack_nodes().
|
pure virtual |
Implemented in InnerNode, and LeafNode.
Referenced by getSubtreeSize(), has_unaligned(), BVH2::pack_nodes(), BVHBuild::rotate(), update_time(), and update_visibility().
|
pure virtual |
Implemented in InnerNode, and LeafNode.
Referenced by computeSubtreeSAHCost(), deleteSubtree(), getSubtreeSize(), and has_unaligned().
|
inlinevirtual |
Reimplemented in LeafNode.
Definition at line 43 of file bvh/node.h.
Referenced by computeSubtreeSAHCost(), and getSubtreeSize().
|
pure virtual |
Implemented in InnerNode, and LeafNode.
Referenced by InnerNode::print().
|
inline |
Definition at line 49 of file bvh/node.h.
References aligned_space, is_unaligned, and NULL.
Referenced by BVHBuild::build_node(), BVHBuild::build_node(), and BVHBuild::create_leaf_node().
| void BVHNode::update_time | ( | ) |
Definition at line 134 of file bvh/node.cpp.
References InnerNode::children, is_leaf(), max, min, time_from, time_to, and update_time().
Referenced by BVHBuild::run(), and update_time().
| uint BVHNode::update_visibility | ( | ) |
Definition at line 121 of file bvh/node.cpp.
References InnerNode::children, is_leaf(), update_visibility(), and visibility.
Referenced by BVHBuild::run(), and update_visibility().
| Transform* BVHNode::aligned_space |
Definition at line 101 of file bvh/node.h.
Referenced by BVHNode(), get_aligned_space(), set_aligned_space(), and ~BVHNode().
| BoundBox BVHNode::bounds |
Definition at line 93 of file bvh/node.h.
Referenced by computeSubtreeSAHCost(), BVHBuild::create_leaf_node(), BVHBuild::create_object_leaf_nodes(), LeafNode::LeafNode(), BVH2::pack_aligned_inner(), BVH2::pack_unaligned_inner(), and BVHBuild::rotate().
| float* BVHNode::bv |
Definition at line 70 of file BLI_kdopbvh.c.
Referenced by BLI_bvhtree_find_nearest_projected(), BLI_bvhtree_get_bounding_box(), bvh_insertionsort(), non_recursive_bvh_div_nodes(), non_recursive_bvh_div_nodes_task_cb(), and tree_overlap_test().
| struct BVHNode** BVHNode::children |
Definition at line 65 of file BLI_kdopbvh.c.
Referenced by bvhtree_overlap_task_cb(), non_recursive_bvh_div_nodes(), non_recursive_bvh_div_nodes_task_cb(), tree_overlap_traverse(), tree_overlap_traverse_cb(), and tree_overlap_traverse_num().
| int BVHNode::index |
Definition at line 71 of file BLI_kdopbvh.c.
Referenced by BLI_bvhtree_range_query(), tree_overlap_traverse(), tree_overlap_traverse_cb(), and tree_overlap_traverse_num().
| bool BVHNode::is_unaligned |
Definition at line 96 of file bvh/node.h.
Referenced by getSubtreeSize(), has_unaligned(), BVH2::pack_inner(), and set_aligned_space().
| char BVHNode::main_axis |
Definition at line 73 of file BLI_kdopbvh.c.
Referenced by non_recursive_bvh_div_nodes(), and non_recursive_bvh_div_nodes_task_cb().
| char BVHNode::node_num |
Definition at line 72 of file BLI_kdopbvh.c.
Referenced by BLI_bvhtree_range_query(), bvhtree_overlap_task_cb(), non_recursive_bvh_div_nodes(), non_recursive_bvh_div_nodes_task_cb(), tree_overlap_traverse(), tree_overlap_traverse_cb(), and tree_overlap_traverse_num().
| struct BVHNode* BVHNode::parent |
Definition at line 66 of file BLI_kdopbvh.c.
Referenced by non_recursive_bvh_div_nodes(), and non_recursive_bvh_div_nodes_task_cb().
| float BVHNode::time_from |
Definition at line 103 of file bvh/node.h.
Referenced by BVHBuild::create_leaf_node(), BVHBuild::create_object_leaf_nodes(), InnerNode::InnerNode(), and update_time().
| float BVHNode::time_to |
Definition at line 103 of file bvh/node.h.
Referenced by BVHBuild::create_leaf_node(), BVHBuild::create_object_leaf_nodes(), InnerNode::InnerNode(), and update_time().
| uint BVHNode::visibility |
Definition at line 94 of file bvh/node.h.
Referenced by InnerNode::InnerNode(), InnerNode::InnerNode(), InnerNode::InnerNode(), LeafNode::LeafNode(), BVH2::pack_aligned_inner(), BVH2::pack_leaf(), BVH2::pack_unaligned_inner(), and update_visibility().