Change traversal to keep exact zero distance hits #3
@@ -119,7 +119,8 @@ impl Bvh{
|
||||
let clamped_point=start_point.min(aabb.max()).max(aabb.min());
|
||||
Some((start_point-clamped_point).length_squared())
|
||||
};
|
||||
let (_,event_slice)=self.bvh.traverse(start_point,Fixed::ZERO,Fixed::MAX,intersect_leaf,intersect_aabb)?;
|
||||
// traverse uses strict `start_time < t`, so use NEG_EPSILON to keep exact-zero-distance hits.
|
||||
let (_,event_slice)=self.bvh.traverse(start_point,Fixed::NEG_EPSILON,Fixed::MAX,intersect_leaf,intersect_aabb)?;
|
||||
|
||||
// find time at the closest point
|
||||
let (best_time,mut best_distance)=output_events[event_slice.slice.start..event_slice.slice.end].iter().map(|event|{
|
||||
|
||||
Reference in New Issue
Block a user