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