From 1c4e474ff6a0ae6cf1b1f7a9de71b3246aba29b6 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 07 五月 2025 16:52:05 +0800 Subject: [PATCH] 新增可见元素移除功能 --- Yw.WpfUI.Hydro.L3d.Core/03-draw/02-manager/DrawEditManager.cs | 61 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 0 deletions(-) diff --git a/Yw.WpfUI.Hydro.L3d.Core/03-draw/02-manager/DrawEditManager.cs b/Yw.WpfUI.Hydro.L3d.Core/03-draw/02-manager/DrawEditManager.cs index a9c4ec8..2866134 100644 --- a/Yw.WpfUI.Hydro.L3d.Core/03-draw/02-manager/DrawEditManager.cs +++ b/Yw.WpfUI.Hydro.L3d.Core/03-draw/02-manager/DrawEditManager.cs @@ -15,6 +15,8 @@ _addHelper.AddChangedEvent += OnAddChanged; _editHelper = new DrawEditHelper(viewport, _initialHelper, _selectionHelper); _editHelper.EditChangedEvent += OnEditChanged; + _removeHelper = new DrawRemoveHelper(viewport, _initialHelper); + _removeHelper.RemoveChangedEvent += OnRemoveChanged; } @@ -30,11 +32,17 @@ /// </summary> public event Action<List<VisualL3d>> EditChangedEvent; + /// <summary> + /// 绉婚櫎鏀瑰彉浜嬩欢 + /// </summary> + public event Action<List<VisualL3d>> RemoveChangedEvent; + #endregion protected readonly DrawMoudingHelper _moudingHelper = null;//鐗熷畾杈呭姪绫� protected readonly DrawAddHelper _addHelper = null;//娣诲姞杈呭姪绫� protected readonly DrawEditHelper _editHelper = null;//缂栬緫杈呭姪绫� + protected readonly DrawRemoveHelper _removeHelper = null;//绉婚櫎杈呭姪绫� #region 娣诲姞鏂规硶 @@ -94,6 +102,10 @@ /// </summary> public virtual void StartEdit() { + if (!Initialized) + { + return; + } _editHelper.Start(); } @@ -102,6 +114,10 @@ /// </summary> public virtual void EndEdit() { + if (!Initialized) + { + return; + } _editHelper.End(); } @@ -118,6 +134,49 @@ #endregion + #region 绉婚櫎鏂规硶 + + /// <summary> + /// 绉婚櫎 + /// </summary> + public virtual bool RemoveVisual(string Id) + { + if (!Initialized) + { + return false; + } + return _removeHelper.Remove(Id); + } + + /// <summary> + /// 绉婚櫎 + /// </summary> + public virtual bool RemoveVisual(List<string> Ids) + { + if (!Initialized) + { + return false; + } + if (Ids == null || Ids.Count < 1) + { + return false; + } + return _removeHelper.Remove(Ids); + } + + //澶勭悊绉婚櫎鏀瑰彉 + protected virtual void OnRemoveChanged(List<VisualDraw3D> visual3ds) + { + if (visual3ds == null || visual3ds.Count < 1) + { + return; + } + var visuals = visual3ds.Select(x => x.Visual).ToList(); + this.RemoveChangedEvent?.Invoke(visuals); + } + + #endregion + /// <summary> /// 鍏抽棴 /// </summary> @@ -127,6 +186,8 @@ _addHelper.Dispose(); _editHelper.EditChangedEvent -= OnEditChanged; _editHelper.Dispose(); + _removeHelper.RemoveChangedEvent -= OnRemoveChanged; + _removeHelper.Dispose(); base.Close(); } -- Gitblit v1.9.3