how does it work

This commit is contained in:
Quaternions 2025-01-09 21:20:25 -08:00
parent e371f95a4b
commit 1fcd18bc45

View File

@ -37,6 +37,8 @@ pub struct MouseInterpolator{
session_timeline:std::collections::VecDeque<TimedInterpolatorInstruction>, session_timeline:std::collections::VecDeque<TimedInterpolatorInstruction>,
physics_timeline:std::collections::VecDeque<TimedPhysicsInstruction>, physics_timeline:std::collections::VecDeque<TimedPhysicsInstruction>,
} }
// Maybe MouseInterpolator manipulation is better expressed using impls
// and called from Instruction trait impls in session
impl InstructionConsumer<Instruction> for MouseInterpolator{ impl InstructionConsumer<Instruction> for MouseInterpolator{
type TimeInner=SessionTimeInner; type TimeInner=SessionTimeInner;
fn process_instruction(&mut self,ins:TimedInterpolatorInstruction){ fn process_instruction(&mut self,ins:TimedInterpolatorInstruction){
@ -66,7 +68,8 @@ impl MouseInterpolator{
// new input // new input
} }
pub fn drop_output<'a>(&mut self,ins:TimedInstruction<DropInstruction<'a>,SessionTimeInner>){ pub fn drop_output<'a>(&mut self,ins:TimedInstruction<DropInstruction<'a>,SessionTimeInner>){
// // so the idea is that Session gets in the middle of MouseInterpolator instruction processing
// and injects its own side effects, notably running physics
} }
pub fn next_output(&self,time_limit:SessionTime)->Option<TimedInstruction<DropInstruction<'_>,SessionTimeInner>>{ pub fn next_output(&self,time_limit:SessionTime)->Option<TimedInstruction<DropInstruction<'_>,SessionTimeInner>>{
None None