lixiaojun
2024-08-05 0d59c0b8d03e8485f7938c95ab6d7303d4b1a329
WinFrmUI/Yw.WinFrmUI.Hydro.Q3d.Core/Map/Map.cs
@@ -1,5 +1,4 @@
using DevExpress.XtraEditors.Filtering;
using Yw.WinFrmUI.Q3D;
using Yw.WinFrmUI.Q3D;
using Newtonsoft.Json;
using System;
@@ -45,7 +44,7 @@
        public Map()
        {
            InitializeComponent();
            this.DoubleBuffered = true;
            MapCenter = PointF.Empty;
@@ -69,7 +68,7 @@
            this.TC = TC;
            this.DrawNet = Draw;
@@ -138,7 +137,7 @@
            //    }
            //    TCCube.settings.network.Areas.Add(area);
            //}
        }
        #endregion
@@ -154,10 +153,10 @@
            {
                _network = new MapViewNetWork();
            }
            SuspendLayout();
            SetStartEndPoint(_Template.Node1, _Template.Node2);
@@ -178,11 +177,11 @@
            SetMapInvalidate();
        }
        public void SetData(MapViewNetWork netWork,Settings template=null)
        public void SetData(MapViewNetWork netWork, Settings template = null)
        {
            bool reLoad = _network == netWork;
            this._Template = template;
            this._network = netWork;
@@ -204,7 +203,7 @@
                }
            }
            //将$"{MapCenter.X.ToString("0.00")},{MapCenter.Y.ToString("0.00")}"通过CenterChanged传出
            CenterChanged?.Invoke(this, $"{MapCenter.X.ToString("0.00")},{MapCenter.Y.ToString("0.00")}");
            //将zoom.ToString("0.000")通过ZoomChanged传出
@@ -558,7 +557,7 @@
            if (needInvalidate) this.SetMapInvalidate();
            //将$"{e.X.ToString("0")},{e.Y.ToString("0")}"通过MousePositionChanged传出
            MousePositionChanged?.Invoke(this, $"{_MousePosition.X.ToString("0.00")},{_MousePosition.Y.ToString("0.00")}");
            _lastMouseX = e.X;
            _lastMouseY = e.Y;
        }
@@ -585,7 +584,7 @@
        int doubleClick_Delay = 500;//毫秒
        bool recordView = false;
        void mapMouseUp(MouseEventArgs e)
        {
            //BookMark    :鼠标抬起事件
@@ -641,7 +640,7 @@
                SetMapInvalidate();
                return;
            }
            if  /*多边形选择*/(_isDrawingPolygon && e.Button == MouseButtons.Left && ModifierKeys == Keys.None)
            {
                _isDrawingPolygon = false;
@@ -673,7 +672,7 @@
                // 结束绘制多边形
                return;
            }
            if  /*取消移动对象*/(_isMovingObject && !isMouseMoved && e.Button == MouseButtons.Left)
            {
                _isMovingObject = false;
@@ -691,8 +690,8 @@
                _NewNet.Clear();
                return;
            }
            if /*叠加框选*/(isMouseMoved && _mouseState == MouseState.无 && e.Button == MouseButtons.Left && ModifierKeys == Keys.Control)
            {
@@ -747,7 +746,7 @@
                        }
                    }
                }
                SelectedObjectsChanged?.Invoke(this, selectedObjs);
                SetMapInvalidate();
                mousePosition = new PointF(0, 0);
@@ -791,7 +790,7 @@
                        selectedObjs.Add(link);
                    }
                }
                //将selectedObjs通过SelectedObjectsChanged传出
                SelectedObjectsChanged?.Invoke(this, selectedObjs);
                SetMapInvalidate();
@@ -814,7 +813,7 @@
                    selectedObjs.Clear();
                    obj.Selected = true;
                    selectedObjs.Add(obj);
                    SelectedObjectsChanged?.Invoke(this, selectedObjs);
                    _OperaNode = null;
@@ -1219,7 +1218,7 @@
        #region 视角工具
        // 显示点属性
        double 俯视角度_bak = 45;
        private void tool视角_ButtonClick(object sender, EventArgs e)
        {
@@ -1617,7 +1616,7 @@
                SetMapInvalidate();
            }
        }
@@ -1821,12 +1820,12 @@
        }
        #endregion
        #region 分析工具
        public List<PointF> GetRotatedPoints(List<PointF> points, PointF origin, float angle)
        {
            // 将角度转换为弧度
@@ -1963,7 +1962,7 @@
                            obj.Selected = true;
                            selectedObjs.Add((LinkViewModel)obj);
                        });
                        SelectedObjectsChanged?.Invoke(this, selectedObjs);
                        SetMapInvalidate();
                    }
@@ -1978,7 +1977,7 @@
                ResultForm.Controls.Add(listBox1);
                ResultForm.MinimizeBox = false;
                ResultForm.MaximizeBox = false;
                ResultForm.Show();
            }
@@ -1986,12 +1985,12 @@
            {
                MessageBox.Show("拓扑检查通过");
            }
        }
        List<LinkViewModel> LinksToFindSource = null;
        Dictionary<LinkViewModel, List<IBaseViewModel>> Sets = null;
        Dictionary<LinkViewModel, bool> Sets_hasSource = null;
@@ -2039,7 +2038,7 @@
                }
            }
            SelectedObjectsChanged?.Invoke(this, selectedObjs);
        }
        private void TraversePipeNetwork(LinkViewModel startLink, HashSet<NodeViewModel> visitedNodes = null)
@@ -2107,7 +2106,7 @@
            queue.Enqueue(startLink);
            if (visitedNodes == null)
                visitedNodes = new HashSet<NodeViewModel>();
            Sets.Add(startLink, new List<IBaseViewModel>());
            Sets_hasSource.Add(startLink, false);
            while (queue.Count > 0)
@@ -2565,7 +2564,7 @@
        public void buttonUndo_Click(object sender, EventArgs e)
        {
            SetMapInvalidate();
            SelectedObjectsChanged?.Invoke(this, null);
            MapObjectExtensions.Undo();
        }
@@ -2669,7 +2668,7 @@
        bool _isSettingBackGroundPictur = false;
        private bool __needpaintall = false;