示例#1
0
        /// <summary> 为道路中的所有边坡设置土质或者岩质属性 </summary>
        private void SetSlopeSoilRock(List <SlopeLine> allSlopes)
        {
            SoilRockRange.SetSlopeSoilRock(Options_Collections.SoilRockRanges, allSlopes.Select(r => r.XData).ToArray());

            // 保存数据
            foreach (var s in allSlopes)
            {
                s.Pline.UpgradeOpen();
                s.FlushXData();
                s.Pline.DowngradeOpen();
            }
        }
示例#2
0
        private void SoilRockRangesOnAddingNew(object sender, AddingNewEventArgs e)
        {
            var ss = _soilRockRanges.LastOrDefault();

            if (ss == null)
            {
                ss = new SoilRockRange(0, 0, SoilRockRange.Distribution.左右两侧, SubgradeType.岩质);
            }
            else
            {
                ss = (SoilRockRange)ss.Clone();
                ss.StartStation = ss.EndStation;
            }
            e.NewObject = ss;
        }
示例#3
0
        /// <summary> 将<seealso cref="Xrecord"/>对象中的数据刷新到内存中的静态类中 </summary>
        /// <param name="xrec">其值可以为 null,表示集合中一个数据都没有 </param>
        public static void FromXrecord_SoilRockRanges(Xrecord xrec)
        {
            SoilRockRanges = new List <SoilRockRange>();
            if (xrec != null)
            {
                var buffs = xrec.Data.AsArray();
                if (buffs == null || buffs.Length == 0)
                {
                    return;
                }
                //
                try
                {
                    var itemsCount  = (int)buffs[0].Value;
                    var fieldsCount = 4;
                    var baseIndex   = 0;
                    for (int i = 0; i < itemsCount; i++)
                    {
                        var s = new SoilRockRange(
                            startStation: (double)buffs[baseIndex + 1].Value,
                            endStation: (double)buffs[baseIndex + 2].Value,
                            distribution: Utils.GetExtendedDataEnum <SoilRockRange.Distribution>(buffs[baseIndex + 3]),
                            type: Utils.GetExtendedDataEnum <SubgradeType>(buffs[baseIndex + 4]));

                        //
                        SoilRockRanges.Add(s);
                        baseIndex += fieldsCount;
                    }
                }
                catch (Exception ex)
                {
                    Debug.Print("提取整条道路中岩土分区信息出错" + ex.AppendMessage());
                }
            }
            //
        }