From 71c956d53e25d73947ce14690fae74f3542da002 Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期一, 06 五月 2024 15:41:50 +0800 Subject: [PATCH] feature:优化结构 --- Hydraulic/Hydro.MapUI/Map/MapViewer.Model.cs | 202 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 168 insertions(+), 34 deletions(-) diff --git a/Hydraulic/Hydro.MapUI/Map/MapViewer.Model.cs b/Hydraulic/Hydro.MapUI/Map/MapViewer.Model.cs index 6b08526..22502b0 100644 --- a/Hydraulic/Hydro.MapUI/Map/MapViewer.Model.cs +++ b/Hydraulic/Hydro.MapUI/Map/MapViewer.Model.cs @@ -21,6 +21,7 @@ using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; +using static Hydro.MapView.MapViewEnum; using static System.Net.Mime.MediaTypeNames; using static System.Windows.Forms.AxHost; using static System.Windows.Forms.LinkLabel; @@ -34,12 +35,104 @@ { } + public class TContainer + { + + public MapDimensions mapOption = new MapDimensions(); + + public Template newTemplate = null; + + public Template template = null; + + } public partial class MapViewer { - #region 鏂板绠$綉 + #region 鏍稿績灞炴�� + TContainer TC = new TContainer(); + + + /// <summary> + /// 鍦板浘閫夐」 + /// </summary> + public MapDimensions mapOption + { + get { return TC.mapOption; } + set { TC.mapOption = value; } + } + /// <summary> + /// 鍦板浘閫夐」_璧峰鎿嶄綔鏃� + /// </summary> + private MapDimensions mapOption0 = new MapDimensions(); + /// <summary> + /// 涓存椂绠$綉灞� + /// </summary> [Browsable(false)] - public Template _newTemplate { get; set; } = null;// new Template(); + public Template _newTemplate + { + get { return TC.newTemplate; } + set { TC.newTemplate = value; } + } + + + [Browsable(false)] + public Template _Template + { + get {return TC.template; } + set + { + TC.template = value; + + label_file.Text = TC.template?.filePath; + } + } + + #endregion + #region 浜や簰灞炴�� + /// <summary> + /// 鎮仠瀵硅薄 + /// </summary> + private List<IBaseViewModel> hoveredObjs = new List<IBaseViewModel>(); + /// <summary> + /// 閫変腑瀵硅薄 + /// </summary> + public List<IBaseViewModel> selectedObjs = new List<IBaseViewModel>(); + + + private List<NodeViewModel> selectedNodes => selectedObjs.FindAll(o => o is NodeViewModel).Select(o => (NodeViewModel)o).ToList(); + private List<LinkViewModel> selectedLinks => selectedObjs.FindAll(o => o is LinkViewModel).Select(o => (LinkViewModel)o).ToList(); + + MouseState _mouseState = MouseState.鏃�; + private NodeViewModel _OperaNode = null; + public PointF mouseXY = new PointF(0, 0); + + PointF DragStartPos; + PointF _ClickStartPos; + PointF RotaStartPos; + PointF BackGroudPicLeftPos; + bool _isPanning; + /// <summary> + /// 鎷栨嫿閫夋嫨 + /// </summary> + bool _isDragging; + bool _isRotating; + bool _isPainting; + + + PointF mousePosition; + // control+榧犳爣涓棿鎸変笅缂╂斁 + bool _isInsertingObject = false; + bool _isMovingObject = false; + bool _isPastingObject = false; + Cursor _lastCursor; + object _undoOldValue = null; + private List<PointF> polygonPoints = new List<PointF>(); + + private bool _isDrawingPolygon; + + #endregion + #region 鏂板绠$綉锛堣緟鍔╋級 + MapViewNetWork _NewNet { get @@ -50,8 +143,7 @@ } } #endregion - - #region 灞炴�� + #region 鏄剧ず閫夐」锛堣緟鍔╋級 private string _StartPoint = null; @@ -68,18 +160,7 @@ } } - private Template __template = null; - [Browsable (false)] - public Template _Template - { - get { return __template; } - set - { - __template = value; - - label_file.Text = __template==null?"": __template.filePath; - } - } + [Browsable(false)] public float Link_multiply { @@ -157,7 +238,8 @@ return _Template?.network; } } - + #endregion + #region 绠$綉灞炴�э紙杈呭姪锛� [Browsable(false)] public List<NodeCalcModel> _Nodes { @@ -179,12 +261,9 @@ } #endregion + #region 瑙嗚璁剧疆锛堣緟鍔╋級 - - #region 鍩虹鍦板浘瑙嗗浘閫夐」 - - MapDimensions mapOption = new MapDimensions(); - MapDimensions mapOption0 = new MapDimensions(); + private const float MinZoom = 0.1f; private const float MaxZoom = 1000.0f; @@ -197,7 +276,8 @@ return mapOption.zoom; } set - { + { + label_zoom.Text = $"Zoom锛歿zoom.ToString("0.000")}"; mapOption.zoom = value; } } @@ -209,7 +289,8 @@ return mapOption.rotation; } set - { + { + toolStripStatusLabel_rotation.Text = $"Rotation锛�({Rotation.ToString("0")}锛寋RotationF.ToString("0")})"; mapOption.rotation = value; } } @@ -223,13 +304,29 @@ return mapOption.Center; } set - { + { + label_center.Text = $"center锛�({MapCenter.X.ToString("0.00")} 锛寋MapCenter.Y.ToString("0.00")}锛�"; mapOption.Center = value; } } private PointF MapCenter0; private bool is3Dview = false; double 淇瑙掑害_start = 90; + + + + public bool Lock2DView + { + get + { + return mapOption.Lock2DView; + } + set + { + mapOption.Lock2DView = value; + } + } + /// <summary> /// 淇绾夸笌搴曢潰鐨勫す瑙掞紝鎶曞奖鐢╯in @@ -239,18 +336,11 @@ { get { - if (Lock2DView) - mapOption.rotationF = 90; - return mapOption.rotationF; } set { - - if (Lock2DView) - mapOption.rotationF = 90; - else - mapOption.rotationF = value; + mapOption.rotationF = value; } } [Browsable(false)] @@ -277,7 +367,51 @@ return new PointF(0, 0); } #endregion + #region 棰滆壊鍒嗙骇锛堣緟鍔╋級 + Colour _NodeColour + { + get + { + return _Template?.Colours?.FirstOrDefault(cl => cl.isChoosed && cl.Type == mapOption.ColourNode); + } + } + Colour _LinkColour + { + get + { + return _Template?.Colours?.FirstOrDefault(cl => cl.isChoosed && cl.Type == mapOption.ColourLink); + } + } + + //private bool __isOrtho = true; - + #endregion + #region 姝d氦妯″紡 + private bool _isOrtho + { + get + { + return mapOption.IsOrtho; + } + set + { + mapOption.IsOrtho = value; + if (mapOption.IsOrtho) + { + label_ZZ.Text = "姝d氦妯″紡:寮�"; + } + else + { + label_ZZ.Text = "姝d氦妯″紡:鍏�"; + } + } + } + #endregion + #region 浜嬩欢 + //鎸夊抚鏁板垽鏂槸鍚﹂噸缁橈紝鍑忓皯璁$畻閲忥紙姣忓抚鏈�澶氶噸缁樹竴娆★級 + bool _timerDraw = false; + //鎸夊抚鏁板垽鏂紶鏍囨偓鍋滃璞★紝鍑忓皯璁$畻閲忥紙姣忓抚鏈�澶氬垽鏂竴娆★級 + bool _mouseHoverCheckFlag = false; + #endregion } } -- Gitblit v1.9.3