From 86fdd2266700b4f80a2d8b05b6a79d31802a7231 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 18 四月 2025 17:56:41 +0800
Subject: [PATCH] 添加编辑功能

---
 Yw.WpfUI.Hydro.L3d.Core/03-logical/01-visual/02-link/02-pump/LogicalPump3D.cs |   71 ++++++++++++++++-------------------
 1 files changed, 33 insertions(+), 38 deletions(-)

diff --git a/Yw.WpfUI.Hydro.L3d.Core/03-logical/01-visual/02-link/02-pump/LogicalPump3D.cs b/Yw.WpfUI.Hydro.L3d.Core/03-logical/01-visual/02-link/02-pump/LogicalPump3D.cs
index 908ba06..9f07e91 100644
--- a/Yw.WpfUI.Hydro.L3d.Core/03-logical/01-visual/02-link/02-pump/LogicalPump3D.cs
+++ b/Yw.WpfUI.Hydro.L3d.Core/03-logical/01-visual/02-link/02-pump/LogicalPump3D.cs
@@ -1,4 +1,6 @@
-锘縩amespace Yw.WpfUI.Hydro
+锘縰sing System.Net;
+
+namespace Yw.WpfUI.Hydro
 {
     /// <summary>
     /// 鎶借薄3D姘存车
@@ -35,8 +37,10 @@
             set { _vmo = value; }
         }
 
-        //鏇存柊鏉愯川
-        protected override void UpdateMaterial()
+        /// <summary>
+        /// 鏇存柊鏉愯川
+        /// </summary>
+        public override void UpdateMaterial()
         {
             var htmlColor = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Link.Normal.HtmlColor;
             var opacity = 1.0d;
@@ -57,24 +61,22 @@
             {
                 htmlColor = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Link.Highlight.HtmlColor;
             }
+            if (state.HasFlag(eLogicalState.Adding))
+            {
+                htmlColor = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Node.Adding.HtmlColor;
+            }
+            if (state.HasFlag(eLogicalState.Editing))
+            {
+                htmlColor = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Node.Editing.HtmlColor;
+            }
             var material = _materialHelper.GetMaterial(htmlColor, opacity);
             this.Material = material;
         }
 
-        //鏇存柊鍙鎬�
-        protected override void UpdateVisibility()
-        {
-            bool visible = true;
-            var state = _stateHelper.GetState(this.Vmo);
-            if (state.HasFlag(eLogicalState.Visible))
-            {
-                visible = _overrideVisibleHelper.GetVisible(this.Vmo);
-            }
-            this.Visible = visible;
-        }
-
-        //鏇存柊鍑犱綍鍥惧舰
-        protected override void UpdateGeometry()
+        /// <summary>
+        /// 鏇存柊鍑犱綍鍥惧舰
+        /// </summary>
+        public override void UpdateGeometry()
         {
             var diameter = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Link.Normal.Diameter;
             var state = _stateHelper.GetState(this.Vmo);
@@ -87,8 +89,8 @@
                 diameter = Yw.Settings.HydroL3dParasHelper.HydroL3d.Logical.Link.Highlight.Diameter;
             }
 
-            var sv = this.Vmo.StartPosition.ToVector3D();
-            var ev = this.Vmo.EndPosition.ToVector3D();
+            var sv = this.StartPosition.ToVector3D();
+            var ev = this.EndPosition.ToVector3D();
             var center = (sv + ev) * 0.5d;
             var direction = (ev - sv);
             var length = direction.Length;
@@ -97,7 +99,7 @@
             //姘存车绠¢亾
             MeshBuilder builder = new MeshBuilder();
             builder.AddTube(
-                path: new[] { this.Vmo.StartPosition.ToPoint3D(), this.Vmo.EndPosition.ToPoint3D() },
+                path: new[] { this.StartPosition, this.EndPosition },
                 diameter: diameter,  // 绾跨洿寰�(3D绌洪棿鍗曚綅)
                 thetaDiv: 8,    // 妯埅闈㈢粏鍒嗗害
                 false
@@ -111,28 +113,21 @@
                 diameter: diameter * 1.5d,
                 thetaDiv: 16);
 
-            double bladeWidth = diameter * 2d;
-            double bladeLength = length * 0.6d;
-
-            // 鍒涘缓涓や釜浜ゅ弶鐨勫彾鐗�
-            for (int i = 0; i < 2; i++)
-            {
-                var rotation = new RotateTransform3D(
-                    new AxisAngleRotation3D(direction, i * 90));
-
-                // 鍙剁墖1
-                var p1 = center + rotation.Transform(new Vector3D(-bladeLength / 2, -bladeWidth / 2, 0));
-                var p2 = center + rotation.Transform(new Vector3D(bladeLength / 2, -bladeWidth / 2, 0));
-                var p3 = center + rotation.Transform(new Vector3D(bladeLength / 2, bladeWidth / 2, 0));
-                var p4 = center + rotation.Transform(new Vector3D(-bladeLength / 2, bladeWidth / 2, 0));
-
-                builder.AddQuad(p1.ToPoint3D(), p2.ToPoint3D(), p3.ToPoint3D(), p4.ToPoint3D());
-            }
-
             var geometry = builder.ToMesh();
             this.MeshGeometry = geometry;
+
         }
 
 
+        /// <summary>
+        /// 鏇存柊鍙樻崲鐭╅樀
+        /// </summary>
+        public override void UpdateTransform()
+        {
+
+        }
+
+
+
     }
 }

--
Gitblit v1.9.3