/// <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)); }
/// <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)); }
/// <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); }