Пример #1
0
        private MeridianWater <MeridianCoor> GetData(
            bool fullMeridian     = false,
            bool excite           = false,
            BottomForm bottomForm = BottomForm.No)
        {
            var man = new HealpixManager(9); //2 is good too

            northBasin = man.GetCenter <MeridianCoor>(0);
            basin      = man.GetCenter <MeridianCoor>(4);
            southBasin = man.GetCenter <MeridianCoor>(12);
            var pix = fullMeridian
                      // -.=.=.-
                ? new[] { northBasin, basin, southBasin }
            // -.=.-
                : new[] { northBasin, basin };

            var data = new MeridianWater <MeridianCoor>(man, pix, false);

            data.GradientAndHeightCrosses();
            if (excite)
            {
                //data.Water.Move()
                basin.hOQ = HeightExcitement;
                data.GradientAndHeightCrosses();
            }
            switch (bottomForm)
            {
            case BottomForm.Shallow:
                foreach (var t in pix)
                {
                    t.Depth = 0;
                }
                break;

            case BottomForm.InDepth:
                foreach (var t in pix)
                {
                    t.Depth = HeightExcitement;
                }
                break;

            case BottomForm.BasinExcited:
                foreach (var t in pix)
                {
                    t.Depth = t == basin
                            ? -HeightExcitement
                            : HeightExcitement;
                }
                break;

            case BottomForm.BasinInDepth:
                foreach (var t in pix)
                {
                    t.Depth = t == basin ? HeightExcitement : 0;
                }
                break;

            case BottomForm.ShallowSouth:
                foreach (var t in pix)
                {
                    t.Depth = t == southBasin ? 0 : HeightExcitement;
                }
                break;

            case BottomForm.NorthBasinInDepth:
                northBasin.Depth = HeightExcitement;
                basin.Depth      = -HeightExcitement;
                southBasin.Depth = 0;
                break;

            case BottomForm.ReliefLikeWater:
                foreach (var t in pix)
                {
                    t.Depth = (int)-t.hOQ;
                }
                break;
            }
            return(data);
        }