Cycles: Cleanup, rename RegularBVH to BinaryBVH

Makes it more explicit what the structure is from it's name.
This commit is contained in:
Sergey Sharybin 2017-03-28 18:58:51 +02:00
parent 31e6249256
commit 9b1564a862
2 changed files with 31 additions and 31 deletions

@ -67,7 +67,7 @@ BVH *BVH::create(const BVHParams& params, const vector<Object*>& objects)
if(params.use_qbvh) if(params.use_qbvh)
return new QBVH(params, objects); return new QBVH(params, objects);
else else
return new RegularBVH(params, objects); return new BinaryBVH(params, objects);
} }
/* Building */ /* Building */
@ -427,13 +427,13 @@ static bool node_bvh_is_unaligned(const BVHNode *node)
return node0->is_unaligned || node1->is_unaligned; return node0->is_unaligned || node1->is_unaligned;
} }
RegularBVH::RegularBVH(const BVHParams& params_, const vector<Object*>& objects_) BinaryBVH::BinaryBVH(const BVHParams& params_, const vector<Object*>& objects_)
: BVH(params_, objects_) : BVH(params_, objects_)
{ {
} }
void RegularBVH::pack_leaf(const BVHStackEntry& e, void BinaryBVH::pack_leaf(const BVHStackEntry& e,
const LeafNode *leaf) const LeafNode *leaf)
{ {
assert(e.idx + BVH_NODE_LEAF_SIZE <= pack.leaf_nodes.size()); assert(e.idx + BVH_NODE_LEAF_SIZE <= pack.leaf_nodes.size());
float4 data[BVH_NODE_LEAF_SIZE]; float4 data[BVH_NODE_LEAF_SIZE];
@ -456,9 +456,9 @@ void RegularBVH::pack_leaf(const BVHStackEntry& e,
memcpy(&pack.leaf_nodes[e.idx], data, sizeof(float4)*BVH_NODE_LEAF_SIZE); memcpy(&pack.leaf_nodes[e.idx], data, sizeof(float4)*BVH_NODE_LEAF_SIZE);
} }
void RegularBVH::pack_inner(const BVHStackEntry& e, void BinaryBVH::pack_inner(const BVHStackEntry& e,
const BVHStackEntry& e0, const BVHStackEntry& e0,
const BVHStackEntry& e1) const BVHStackEntry& e1)
{ {
if(e0.node->is_unaligned || e1.node->is_unaligned) { if(e0.node->is_unaligned || e1.node->is_unaligned) {
pack_unaligned_inner(e, e0, e1); pack_unaligned_inner(e, e0, e1);
@ -467,9 +467,9 @@ void RegularBVH::pack_inner(const BVHStackEntry& e,
} }
} }
void RegularBVH::pack_aligned_inner(const BVHStackEntry& e, void BinaryBVH::pack_aligned_inner(const BVHStackEntry& e,
const BVHStackEntry& e0, const BVHStackEntry& e0,
const BVHStackEntry& e1) const BVHStackEntry& e1)
{ {
pack_aligned_node(e.idx, pack_aligned_node(e.idx,
e0.node->bounds, e1.node->bounds, e0.node->bounds, e1.node->bounds,
@ -477,11 +477,11 @@ void RegularBVH::pack_aligned_inner(const BVHStackEntry& e,
e0.node->visibility, e1.node->visibility); e0.node->visibility, e1.node->visibility);
} }
void RegularBVH::pack_aligned_node(int idx, void BinaryBVH::pack_aligned_node(int idx,
const BoundBox& b0, const BoundBox& b0,
const BoundBox& b1, const BoundBox& b1,
int c0, int c1, int c0, int c1,
uint visibility0, uint visibility1) uint visibility0, uint visibility1)
{ {
assert(idx + BVH_NODE_SIZE <= pack.nodes.size()); assert(idx + BVH_NODE_SIZE <= pack.nodes.size());
assert(c0 < 0 || c0 < pack.nodes.size()); assert(c0 < 0 || c0 < pack.nodes.size());
@ -508,9 +508,9 @@ void RegularBVH::pack_aligned_node(int idx,
memcpy(&pack.nodes[idx], data, sizeof(int4)*BVH_NODE_SIZE); memcpy(&pack.nodes[idx], data, sizeof(int4)*BVH_NODE_SIZE);
} }
void RegularBVH::pack_unaligned_inner(const BVHStackEntry& e, void BinaryBVH::pack_unaligned_inner(const BVHStackEntry& e,
const BVHStackEntry& e0, const BVHStackEntry& e0,
const BVHStackEntry& e1) const BVHStackEntry& e1)
{ {
pack_unaligned_node(e.idx, pack_unaligned_node(e.idx,
e0.node->get_aligned_space(), e0.node->get_aligned_space(),
@ -521,13 +521,13 @@ void RegularBVH::pack_unaligned_inner(const BVHStackEntry& e,
e0.node->visibility, e1.node->visibility); e0.node->visibility, e1.node->visibility);
} }
void RegularBVH::pack_unaligned_node(int idx, void BinaryBVH::pack_unaligned_node(int idx,
const Transform& aligned_space0, const Transform& aligned_space0,
const Transform& aligned_space1, const Transform& aligned_space1,
const BoundBox& bounds0, const BoundBox& bounds0,
const BoundBox& bounds1, const BoundBox& bounds1,
int c0, int c1, int c0, int c1,
uint visibility0, uint visibility1) uint visibility0, uint visibility1)
{ {
assert(idx + BVH_UNALIGNED_NODE_SIZE <= pack.nodes.size()); assert(idx + BVH_UNALIGNED_NODE_SIZE <= pack.nodes.size());
assert(c0 < 0 || c0 < pack.nodes.size()); assert(c0 < 0 || c0 < pack.nodes.size());
@ -553,7 +553,7 @@ void RegularBVH::pack_unaligned_node(int idx,
memcpy(&pack.nodes[idx], data, sizeof(float4)*BVH_UNALIGNED_NODE_SIZE); memcpy(&pack.nodes[idx], data, sizeof(float4)*BVH_UNALIGNED_NODE_SIZE);
} }
void RegularBVH::pack_nodes(const BVHNode *root) void BinaryBVH::pack_nodes(const BVHNode *root)
{ {
const size_t num_nodes = root->getSubtreeSize(BVH_STAT_NODE_COUNT); const size_t num_nodes = root->getSubtreeSize(BVH_STAT_NODE_COUNT);
const size_t num_leaf_nodes = root->getSubtreeSize(BVH_STAT_LEAF_COUNT); const size_t num_leaf_nodes = root->getSubtreeSize(BVH_STAT_LEAF_COUNT);
@ -630,7 +630,7 @@ void RegularBVH::pack_nodes(const BVHNode *root)
pack.root_index = (root->is_leaf())? -1: 0; pack.root_index = (root->is_leaf())? -1: 0;
} }
void RegularBVH::refit_nodes() void BinaryBVH::refit_nodes()
{ {
assert(!params.top_level); assert(!params.top_level);
@ -639,7 +639,7 @@ void RegularBVH::refit_nodes()
refit_node(0, (pack.root_index == -1)? true: false, bbox, visibility); refit_node(0, (pack.root_index == -1)? true: false, bbox, visibility);
} }
void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility) void BinaryBVH::refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility)
{ {
if(leaf) { if(leaf) {
assert(idx + BVH_NODE_LEAF_SIZE <= pack.leaf_nodes.size()); assert(idx + BVH_NODE_LEAF_SIZE <= pack.leaf_nodes.size());

@ -110,15 +110,15 @@ protected:
virtual void refit_nodes() = 0; virtual void refit_nodes() = 0;
}; };
/* Regular BVH /* Binary BVH
* *
* Typical BVH with each node having two children. */ * Typical BVH with each node having two children. */
class RegularBVH : public BVH { class BinaryBVH : public BVH {
protected: protected:
/* constructor */ /* constructor */
friend class BVH; friend class BVH;
RegularBVH(const BVHParams& params, const vector<Object*>& objects); BinaryBVH(const BVHParams& params, const vector<Object*>& objects);
/* pack */ /* pack */
void pack_nodes(const BVHNode *root); void pack_nodes(const BVHNode *root);