GlideResult 
TaskSolution::glide_solution_sink(const TaskPoint& taskpoint,
                                  const AIRCRAFT_STATE &ac, 
                                  const GlidePolar &polar,
                                  const fixed S)
{
  GlideState gs(taskpoint.get_vector_remaining(ac),
                taskpoint.get_elevation(),
                ac.NavAltitude, ac.wind);
  return MacCready::solve_sink(polar, gs, S);
}
GlideResult 
TaskSolution::glide_solution_travelled(const TaskPoint& taskpoint,
                                       const AIRCRAFT_STATE &ac, 
                                       const GlidePolar &polar,
                                       const fixed minH)
{
  GlideState gs(taskpoint.get_vector_travelled(ac),
                max(minH,taskpoint.get_elevation()),
                ac.NavAltitude, ac.wind);
  return MacCready::solve(polar, gs);
}