Code cleanup: add some asserts and fix a typo in BVH build.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D467
This commit is contained in:
John Pavel 2014-04-21 14:06:29 +02:00 committed by Brecht Van Lommel
parent 83988b6cdd
commit f8cd3d974d
2 changed files with 11 additions and 4 deletions

View File

@ -511,7 +511,7 @@ void BVHBuild::rotate(BVHNode *node, int max_depth)
/* find best rotation. we pick a target child of a first child, and swap
* this with an other child. we perform the best such swap. */
float best_cost = FLT_MAX;
int best_child = -1, bets_target = -1, best_other = -1;
int best_child = -1, best_target = -1, best_other = -1;
for(size_t c = 0; c < 2; c++) {
/* ignore leaf nodes as we cannot descent into */
@ -535,11 +535,11 @@ void BVHBuild::rotate(BVHNode *node, int max_depth)
if(cost0 < cost1) {
best_cost = cost0;
bets_target = 0;
best_target = 0;
}
else {
best_cost = cost0;
bets_target = 1;
best_target = 1;
}
}
}
@ -548,10 +548,13 @@ void BVHBuild::rotate(BVHNode *node, int max_depth)
if(best_cost >= 0)
return;
assert(best_child == 0 || best_child == 1);
assert(best_target != -1);
/* perform the best found tree rotation */
InnerNode *child = (InnerNode*)parent->children[best_child];
swap(parent->children[best_other], child->children[bets_target]);
swap(parent->children[best_other], child->children[best_target]);
child->m_bounds = merge(child->children[0]->m_bounds, child->children[1]->m_bounds);
}

View File

@ -629,6 +629,8 @@ void SkyTextureNode::compile(SVMCompiler& compiler)
sky_texture_precompute_old(&sunsky, sun_direction, turbidity);
else if(type_enum[type] == NODE_SKY_NEW)
sky_texture_precompute_new(&sunsky, sun_direction, turbidity, ground_albedo);
else
assert(false);
if(vector_in->link)
compiler.stack_assign(vector_in);
@ -666,6 +668,8 @@ void SkyTextureNode::compile(OSLCompiler& compiler)
sky_texture_precompute_old(&sunsky, sun_direction, turbidity);
else if(type_enum[type] == NODE_SKY_NEW)
sky_texture_precompute_new(&sunsky, sun_direction, turbidity, ground_albedo);
else
assert(false);
compiler.parameter("sky_model", type);
compiler.parameter("theta", sunsky.theta);