Blender
V3.3
|
#include <node.h>
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 63 of file BLI_kdopbvh.c.
|
inlinevirtual |
Definition at line 32 of file bvh/node.h.
References aligned_space.
|
inlineexplicitprotected |
Definition at line 103 of file bvh/node.h.
|
inlineexplicitprotected |
Definition at line 113 of file bvh/node.h.
References aligned_space, is_unaligned, and NULL.
Definition at line 101 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 92 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 174 of file bvh/node.cpp.
References blender::compositor::context, and NULL.
|
inline |
Definition at line 57 of file bvh/node.h.
References aligned_space, NULL, and transform_identity().
Referenced by BVH2::pack_unaligned_inner().
|
pure virtual |
Implemented in LeafNode, and InnerNode.
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 16 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 65 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 LeafNode, and InnerNode.
Referenced by BVHStackEntry::encodeIdx(), getSubtreeSize(), has_unaligned(), BVH2::pack_nodes(), BVHBuild::rotate(), update_time(), and update_visibility().
|
pure virtual |
Implemented in LeafNode, and InnerNode.
Referenced by computeSubtreeSAHCost(), deleteSubtree(), getSubtreeSize(), and has_unaligned().
|
inlinevirtual |
Reimplemented in LeafNode.
Definition at line 40 of file bvh/node.h.
Referenced by computeSubtreeSAHCost(), and getSubtreeSize().
|
pure virtual |
Implemented in LeafNode, and InnerNode.
Referenced by InnerNode::print().
Definition at line 46 of file bvh/node.h.
References aligned_space, is_unaligned, and NULL.
Referenced by BVHBuild::build_node(), and BVHBuild::create_leaf_node().
void BVHNode::update_time | ( | ) |
Definition at line 127 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 114 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 98 of file bvh/node.h.
Referenced by BVHNode(), get_aligned_space(), set_aligned_space(), and ~BVHNode().
BoundBox BVHNode::bounds |
Definition at line 90 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 69 of file BLI_kdopbvh.c.
Referenced by BLI_bvhtree_find_nearest_projected(), BLI_bvhtree_get_bounding_box(), BLI_bvhtree_walk_dfs(), non_recursive_bvh_div_nodes(), non_recursive_bvh_div_nodes_task_cb(), and tree_overlap_test().
struct BVHNode** BVHNode::children |
Definition at line 64 of file BLI_kdopbvh.c.
Referenced by 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 70 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 93 of file bvh/node.h.
Referenced by BVHNode(), getSubtreeSize(), has_unaligned(), BVH2::pack_inner(), and set_aligned_space().
char BVHNode::main_axis |
Definition at line 72 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 71 of file BLI_kdopbvh.c.
Referenced by BLI_bvhtree_range_query(), 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 65 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 100 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 100 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 91 of file bvh/node.h.
Referenced by InnerNode::InnerNode(), LeafNode::LeafNode(), BVH2::pack_aligned_inner(), BVH2::pack_leaf(), BVH2::pack_unaligned_inner(), and update_visibility().