/// Устанавливает ориентацию либо по букве (N, E, S или W), либо по числу, представляющему азимут public void SetOrientation(String s) { char[] nesw = new char[] { 'N', 'E', 'S', 'W' }; if (0 == s.IndexOfAny(nesw)) { for (FixedOrientation fo = FixedOrientation.First; fo <= FixedOrientation.Last; ++fo) { int index = (int)fo; if (nesw[index] == s[0]) { SetFixedOrientation(fo); } } return; } m_fAzimuth = 0.0; try { m_fAzimuth = Convert.ToDouble(s); } catch (FormatException) { // В случае ошибки преобразования получим нуль } }
/// Устанавливает ориентацию по сторонам света. public void SetFixedOrientation(FixedOrientation fixedOrientation) { double[] fixedAngles = new double[] { 0.0, 90.0, 180.0, 270.0 }; m_fAzimuth = fixedAngles[(int)fixedOrientation]; }