public override double?GetAltitude(HealCoor basin)
        {
            var altitude = Relief.GetAltitude(basin);

            if (altitude == 0)
            {
                altitude = ReliefBed.GetAltitude(basin);
            }
            return(altitude);
        }
        public override double?GetAltitude(HealCoor basin)
        {
            var altitude      = Relief.GetAltitude(basin);
            var altitudeShape = ReliefBed.GetAltitude(basin) + Earth2014Manager.Radius2Add;

            var thetaTan   = Math.Tan(basin.Beta.Value); /* may be out of range */
            var undulation = altitudeShape - altitude
                             - Ellipsoid.Radius(Ellipsoid.CalcVarPhi(thetaTan));

            return(undulation);
        }
        public int GetHeights(HealCoor coor, int rOfEllipse, out int waterHeight)
        {
            var surface = Relief.GetAltitude(coor);
            var hOQ     = surface;

            if (IsReliefShape)
            {
                // hOQ includes undulation
                hOQ += Earth2014Manager.Radius2Add - rOfEllipse;
            }

            var bed = ReliefBed.GetAltitude(coor);

            waterHeight = surface - bed;
            if (waterHeight > 0) /* lakes in ice are ignored */
            {
            }
            return(hOQ);
        }
 public void Dispose()
 {
     Relief.Dispose();
     ReliefBed.Dispose();
 }