if(iter_get_after==INTERPOLATION_HALT)
curve.second.t1()*=0;
+ // if this isn't the first curve
else if(iter_get_after != INTERPOLATION_LINEAR && !curve_list.empty())
- curve.second.t1()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+curve_list.back().second.get_dt());
+ // adjust it for the curve that came before it
+ curve.second.t1() *=
+ // (time span of this curve) * 1.5
+ // -----------------------------------------------------------------
+ // ((time span of this curve) * 0.5) + (time span of previous curve)
+ (curve.second.get_dt()*(timeadjust+1)) /
+ (curve.second.get_dt()*timeadjust + curve_list.back().second.get_dt());
if(next_get_before==INTERPOLATION_HALT)
curve.second.t2()*=0;
+ // if this isn't the last curve
else if(next_get_before != INTERPOLATION_LINEAR && after_next!=waypoint_list_.end())
- curve.second.t2()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time()));
+ // adjust it for the curve that came after it
+ curve.second.t2() *=
+ // (time span of this curve) * 1.5
+ // -------------------------------------------------------------
+ // ((time span of this curve) * 0.5) + (time span of next curve)
+ (curve.second.get_dt()*(timeadjust+1)) /
+ (curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time()));
} // not CONSTANT
}