forked from StrafesNET/roblox-bot-player
Compare commits
2 Commits
debug
...
xeno-debug
| Author | SHA1 | Date | |
|---|---|---|---|
| f41e383e6f | |||
|
102dd7fa6f
|
@@ -40,7 +40,6 @@ impl Bvh{
|
||||
let len=index-last_index;
|
||||
let count=len.div_ceil(MAX_SLICE_LEN);
|
||||
let slice_len=MAX_SLICE_LEN;
|
||||
println!("push_slices index={index} len={len} count={count} slice_len={slice_len}");
|
||||
bvh_nodes.reserve(count);
|
||||
// 0123456789
|
||||
// split into groups of MAX_SLICE_LEN=4
|
||||
@@ -54,7 +53,6 @@ impl Bvh{
|
||||
let event=&output_events[slice.end];
|
||||
aabb.grow(vec3::try_from_f32_array([event.event.position.x,event.event.position.y,event.event.position.z]).unwrap());
|
||||
}
|
||||
println!("EventSlice slice={slice:?} {}",if inclusive{"inclusive"}else{"exclusive"});
|
||||
bvh_nodes.push((EventSlice{slice,inclusive},aabb));
|
||||
};
|
||||
// push fixed-size groups
|
||||
@@ -89,7 +87,6 @@ impl Bvh{
|
||||
(start_point-p).length_squared()
|
||||
}).min()?;
|
||||
let mut prev_event=&output_events[event_slice.slice.start];
|
||||
let start_time=bot.playback_time(crate::time::from_float(prev_event.time).unwrap());
|
||||
let mut f=|event:&'a v0::Timed<v0::OutputEvent>|{
|
||||
let p0=vec3::try_from_f32_array([prev_event.event.position.x,prev_event.event.position.y,prev_event.event.position.z]).unwrap();
|
||||
let p1=vec3::try_from_f32_array([event.event.position.x,event.event.position.y,event.event.position.z]).unwrap();
|
||||
@@ -114,10 +111,7 @@ impl Bvh{
|
||||
}
|
||||
if event_slice.inclusive{
|
||||
f(&output_events[event_slice.slice.end]);
|
||||
}else{
|
||||
}
|
||||
let end_time=bot.playback_time(crate::time::from_float(prev_event.time).unwrap());
|
||||
println!("intersect_leaf {:?} {} start_time={} end_time={}",event_slice.slice,if event_slice.inclusive{"inclusive"}else{"exclusive"},start_time,end_time);
|
||||
Some(best_distance)
|
||||
};
|
||||
let intersect_aabb=|aabb:&Aabb|{
|
||||
@@ -125,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