Skip to content
Snippets Groups Projects
Coordinate.cs 1.72 KiB
Newer Older
  • Learn to ignore specific revisions
  • using System;
    using System.Collections.Generic;
    
    namespace WindStressPRM
    {
        /// <summary>
    
        /// Coordinate pair
        /// пара координат, может быть рамерности: м, км, градус,  однако для всех экземпляров должна быть одной и той же.
    
        /// </summary>
        public class Coordinate
        {
            /// <summary>
            /// easting coordinate
    
            /// Координата по долготе/ X, (м, км, градус)
    
            /// </summary>
            public double X { get; private set; }
            /// <summary>
            /// northing coordinate
    
            /// Координата по широте/Y, (м, км, градус)
    
            /// </summary>
            public double Y { get; private set; }
            /// <summary>
            /// designated constructor
            /// Основной конструктор
            /// </summary>
            /// <param name="X"></param>
            /// <param name="Y"></param>
            public Coordinate(double X, double Y)
            {
                this.X = X;
                this.Y = Y;
    
                this.CheckValue();
    
            }
            /// <summary>
            /// Проверка на валидность значений
            /// </summary>
            /// <returns></returns>
    
            private void CheckValue()
    
                if (Double.IsNaN(X) || Double.IsInfinity(X))
                {
                    throw new System.ArgumentOutOfRangeException("Coordinate.X is incorrect", X, "Expected X!=Nan, X!=INF");
                }
                if (Double.IsNaN(Y) || Double.IsInfinity(Y))
                {
                    throw new System.ArgumentOutOfRangeException("Coordinate.Y is incorrect", Y, "Expected Y!=Nan, Y!=INF");
                }