Пример #1
0
bool
SectorZone::IsInSector(const AircraftState &ref) const
{
    GeoVector f(get_location(), ref.location);

    return f.distance <= Radius && angleInSector(f.bearing);
}
Пример #2
0
bool 
BGAEnhancedOptionZone::isInSector(const AIRCRAFT_STATE &ref) const
{
  GeoVector f(get_location(), ref.Location);

  return (f.Distance<= fixed(500)) || ((f.Distance<=Radius) && angleInSector(f.Bearing));
}
Пример #3
0
bool
AnnularSectorZone::IsInSector(const AircraftState &ref) const
{
  GeoVector f(get_location(), ref.location);

  return (f.Distance <= Radius) && (f.Distance >= InnerRadius) && angleInSector(f.Bearing);
}
Пример #4
0
bool
AnnularSectorZone::isInSector(const AIRCRAFT_STATE &ref) const
{
  GeoVector f(get_location(), ref.Location);

  return (f.Distance <= Radius) && (f.Distance >= InnerRadius) && angleInSector(f.Bearing);
}
bool 
KeyholeZone::isInSector(const AIRCRAFT_STATE &ref) const
{
  GeoVector f(get_location(), ref.Location);

  return f.Distance <= fixed(500) ||
         (f.Distance <= Radius && angleInSector(f.Bearing));
}
Пример #6
0
GeoPoint 
BGAEnhancedOptionZone::get_boundary_parametric(fixed t) const
{ 
  const Angle half = getStartRadial().HalfAngle(getEndRadial());
  const Angle angle = (Angle::radians(t*fixed_two_pi)+half).as_bearing();
  if (angleInSector(angle)) {
    return GeoVector(Radius, angle).end_point(get_location());
  } else {
    return GeoVector(fixed(500), angle).end_point(get_location());
  }
}