示例#1
0
void
GlidePolar::SetMC(const fixed _mc)
{
  mc = _mc;

  if (positive(mc))
    inv_mc = fixed(1)/mc;
  else
    inv_mc = fixed(0);

  if (IsValid())
    UpdateBestLD();
}
示例#2
0
void
GlidePolar::SetMC(const double _mc)
{
  mc = _mc;

  if (mc > 0)
    inv_mc = 1. / mc;
  else
    inv_mc = 0;

  if (IsValid())
    UpdateBestLD();
}
示例#3
0
void 
GlidePolar::UpdateSMin()
{
#if 0
  // this method to be used if polar is not parabolic
  GlidePolarMinSink gpminsink(*this, Vmax);
  Vmin = gpminsink.find_min(Vmin);
#else
  assert(polar.IsValid());

  Vmin = std::min(Vmax, -polar.b / Double(polar.a));
  Smin = SinkRate(Vmin);
#endif

  UpdateBestLD();
}