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