10 Commits

Author SHA1 Message Date
f360bb19f5 ???? 2026-03-17 11:13:28 -07:00
fed0c3afc5 use the same math 2026-03-17 11:07:44 -07:00
20e1163468 fix bug 2026-03-17 10:48:18 -07:00
67d5953471 refactor lerp 2026-03-17 09:36:00 -07:00
d2ded2f53d mistake 2026-03-17 09:36:00 -07:00
1d6d24e838 typo 2026-03-17 09:36:00 -07:00
14f8a9be45 horrible 2026-03-17 09:36:00 -07:00
7b80b8dd43 wip 2026-03-17 09:36:00 -07:00
48c235d73d wip 2026-03-17 09:36:00 -07:00
16835e0d36 denote inclusivity of final path segment 2026-03-17 09:36:00 -07:00

View File

@@ -40,6 +40,7 @@ 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
@@ -53,6 +54,7 @@ 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
@@ -87,6 +89,7 @@ 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();
@@ -111,7 +114,10 @@ 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|{