(
frame: u32,
prev: Option<(u32, &TrackKey, T)>,
next: Option<(u32, &TrackKey, T)>,
lerp: impl Fn(T, T, f32) -> T,
)
| 1262 | let comp = read(value); |
| 1263 | if *f <= frame { |
| 1264 | prev = Some((*f, key, comp)); |
| 1265 | } else { |
| 1266 | next = Some((*f, key, comp)); |
| 1267 | break; |
| 1268 | } |
| 1269 | } |
| 1270 | resolve_sample(frame, prev, next, lerp) |
| 1271 | } |
| 1272 | |
| 1273 | fn sample_component_3d<T: Copy>( |
| 1274 | snapshot: &[(u32, TrackKey)], |
| 1275 | frame: u32, |
| 1276 | mask: u8, |
| 1277 | read: impl Fn(Transform3D) -> T, |
| 1278 | lerp: impl Fn(T, T, f32) -> T, |
| 1279 | ) -> Option<T> { |
| 1280 | let mut prev = None::<(u32, &TrackKey, T)>; |
| 1281 | let mut next = None::<(u32, &TrackKey, T)>; |
| 1282 | for (f, key) in snapshot { |
| 1283 | if key.transform3d_mask & mask == 0 { |
| 1284 | continue; |
| 1285 | } |
| 1286 | let AnimationTrackValue::Transform3D(value) = key.value else { |
| 1287 | continue; |
| 1288 | }; |
| 1289 | let comp = read(value); |
| 1290 | if *f <= frame { |
| 1291 | prev = Some((*f, key, comp)); |
| 1292 | } else { |
no test coverage detected