Пример #1
0
 /// <summary>
 /// Создание регулярной матрицы глубин.
 /// </summary>
 /// <param name="map">Карта.</param>
 /// <param name="scale">Масштаб карты (1 : scale).</param>
 /// <param name="regMatrix">Регулярная карта.</param>
 /// <param name="message">Сообщение ошибки.</param>
 /// <returns>Успешно ли создана регулярная матрица глубин.</returns>
 public bool CreateRegMatrix(DbMap map, long scale, out RegMatrix regMatrix, out string message)
 {
     if (!InitRegMatrixWithoutFilling(map, scale, out regMatrix, out message))
     {
         return(false);
     }
     return(StratagyInterpol.FillingRegMatrix(map, ref regMatrix, out message));
 }
Пример #2
0
 /// <summary>
 /// Создание регулярной матрицы глубин.
 /// </summary>
 /// <param name="regMatrix">Регулярная матрица глубин.</param>
 /// <param name="message">Сообщение с ошибкой.</param>
 /// <returns>Успешно ли прошло создание.</returns>
 public bool CreateRegMatrix(out RegMatrix.RegMatrix regMatrix, out string message)
 {
     // В зависимости от настройки интерполяции создает регулярную матрицу.
     if (_isUseSourceMap)
     {
         return(_regMatrixMaker.CreateRegMatrix(SourceSeaMap, SourceSeaMap.Scale, out regMatrix, out message));
     }
     return(_regMatrixMaker.CreateRegMatrix(MapGenSeaMap, MapGenSeaMap.Scale, out regMatrix, out message));
 }
Пример #3
0
        /// <summary>
        /// Инициализация регулярной матрицы без заполнения точками.
        /// </summary>
        /// <param name="map">Карта.</param>
        /// <param name="scale">Масштаб карты (1 : scale).</param>
        /// <param name="regMatrix">Регулярная карта.</param>
        /// <param name="message">Сообщение ошибки.</param>
        /// <returns>Успешно ли прошла инициализация.</returns>
        private bool InitRegMatrixWithoutFilling(DbMap map, long scale, out RegMatrix regMatrix, out string message)
        {
            regMatrix = new RegMatrix();
            message   = string.Empty;

            // Инициализация регулярной матрицы.
            try
            {
                regMatrix.Step = _scaleCoeffDict[scale];

                regMatrix.Width = (int)map.Width + 1;

                regMatrix.Length = (int)map.Length + 1;

                regMatrix.Points = new PointRegMatrix[regMatrix.Width * regMatrix.Length];
            }
            catch (Exception ex)
            {
                message = $"Ошибка во время инициализации регулярной матрицы. {Methods.CalcMessageException(ex)}";
                return(false);
            }

            return(true);
        }