fix bvh iter
This commit is contained in:
parent
28ffc82ac0
commit
99301bb990
@ -154,7 +154,12 @@ impl<L> BvhNode<L>{
|
|||||||
F:Fn(&L,&Ray)->Option<T>,
|
F:Fn(&L,&Ray)->Option<T>,
|
||||||
{
|
{
|
||||||
match &self.content{
|
match &self.content{
|
||||||
RecursiveContent::Leaf(leaf)=>collector.collect(f(leaf,ray).map(|time|TimedInstruction{time:time.into(),instruction:leaf})),
|
RecursiveContent::Leaf(leaf)=>if let Some(time)=f(leaf,ray){
|
||||||
|
let ins=TimedInstruction{time:time.into(),instruction:leaf};
|
||||||
|
if start_time.lt_ratio(ins.time)&&ins.time.lt_ratio(collector.time()){
|
||||||
|
collector.collect(Some(ins));
|
||||||
|
}
|
||||||
|
},
|
||||||
RecursiveContent::Branch(children)=>for child in children{
|
RecursiveContent::Branch(children)=>for child in children{
|
||||||
if child.aabb.contains(ray.origin){
|
if child.aabb.contains(ray.origin){
|
||||||
child.populate_nodes(collector,nodes,ray,start_time,f);
|
child.populate_nodes(collector,nodes,ray,start_time,f);
|
||||||
@ -197,7 +202,12 @@ impl<L> BvhNode<L>{
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
match &node.content{
|
match &node.content{
|
||||||
RecursiveContent::Leaf(leaf)=>collector.collect(f(leaf,ray).map(|time|TimedInstruction{time:time.into(),instruction:leaf})),
|
RecursiveContent::Leaf(leaf)=>if let Some(time)=f(leaf,ray){
|
||||||
|
let ins=TimedInstruction{time:time.into(),instruction:leaf};
|
||||||
|
if start_time.lt_ratio(ins.time)&&ins.time.lt_ratio(collector.time()){
|
||||||
|
collector.collect(Some(ins));
|
||||||
|
}
|
||||||
|
},
|
||||||
// break open the node and predict collisions with the child nodes
|
// break open the node and predict collisions with the child nodes
|
||||||
RecursiveContent::Branch(children)=>for child in children{
|
RecursiveContent::Branch(children)=>for child in children{
|
||||||
// Am I an upcoming superstar?
|
// Am I an upcoming superstar?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user