From 03b6ae3d20508dccf1c7fd7ee4e1c2e02c3a1da1 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 25 四月 2025 09:41:26 +0800 Subject: [PATCH] 解决水力计算报错崩溃问题 --- Yw.WpfUI.Test.Core/MainWindow.xaml.cs | 160 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 118 insertions(+), 42 deletions(-) diff --git a/Yw.WpfUI.Test.Core/MainWindow.xaml.cs b/Yw.WpfUI.Test.Core/MainWindow.xaml.cs index 00740dd..88788af 100644 --- a/Yw.WpfUI.Test.Core/MainWindow.xaml.cs +++ b/Yw.WpfUI.Test.Core/MainWindow.xaml.cs @@ -15,15 +15,15 @@ { InitializeComponent(); this.Loaded += MainWindow_Loaded; - //Initialize3DScene(); } + private NetworkL3d _nw = null; private void MainWindow_Loaded(object sender, RoutedEventArgs e) { var nw = LoadEpaNetwork(); - var nw3d = Get3dNetwork(nw); - this.editer.Initial(nw3d); - //BuildSimpleNetwork(this.viewport,nw3d.Nodes,nw3d.Links); + //_nw = Get3dNetwork(nw); + _nw = new NetworkL3d(); + this.editer.Initial(_nw); } private Yw.Epanet.Network LoadEpaNetwork() @@ -70,18 +70,8 @@ var pipe3d = new PipeL3d(); pipe3d.Id = pipe.Id; pipe3d.Name = pipe.Name; - pipe3d.StartPosition = new PointL3d() - { - X = (float)pipe.StartNode.Position.X, - Y = (float)pipe.StartNode.Position.Y, - Z = (float)pipe.StartNode.GetElev() - }; - pipe3d.EndPosition = new PointL3d() - { - X = (float)pipe.EndNode.Position.X, - Y = (float)pipe.EndNode.Position.Y, - Z = (float)pipe.EndNode.GetElev() - }; + pipe3d.StartNode = nw3d.Nodes.Find(x => x.Id == pipe.StartNodeId); + pipe3d.EndNode = nw3d.Nodes.Find(x => x.Id == pipe.EndNodeId); nw3d.Append(pipe3d, out msg); } @@ -90,18 +80,8 @@ var pump3d = new PumpL3d(); pump3d.Id = pump.Id; pump3d.Name = pump.Name; - pump3d.StartPosition = new PointL3d() - { - X = (float)pump.StartNode.Position.X, - Y = (float)pump.StartNode.Position.Y, - Z = (float)pump.StartNode.GetElev() - }; - pump3d.EndPosition = new PointL3d() - { - X = (float)pump.EndNode.Position.X, - Y = (float)pump.EndNode.Position.Y, - Z = (float)pump.EndNode.GetElev() - }; + pump3d.StartNode = nw3d.Nodes.Find(x => x.Id == pump.StartNodeId); + pump3d.EndNode = nw3d.Nodes.Find(x => x.Id == pump.EndNodeId); nw3d.Append(pump3d, out msg); } @@ -110,18 +90,8 @@ var valve3d = new ValveL3d(); valve3d.Id = valve.Id; valve3d.Name = valve.Name; - valve3d.StartPosition = new PointL3d() - { - X = (float)valve.StartNode.Position.X, - Y = (float)valve.StartNode.Position.Y, - Z = (float)valve.StartNode.GetElev() - }; - valve3d.EndPosition = new PointL3d() - { - X = (float)valve.EndNode.Position.X, - Y = (float)valve.EndNode.Position.Y, - Z = (float)valve.EndNode.GetElev() - }; + valve3d.StartNode = nw3d.Nodes.Find(x => x.Id == valve.StartNodeId); + valve3d.EndNode = nw3d.Nodes.Find(x => x.Id == valve.EndNodeId); nw3d.Append(valve3d, out msg); } @@ -151,12 +121,12 @@ private void AddHorizPipe_Click(object sender, RoutedEventArgs e) { - + this.editer.StartAddHorizPipe(); } private void AddVertPipe_Click(object sender, RoutedEventArgs e) { - + this.editer.StartAddVertPipe(); } private void AddPump_Click(object sender, RoutedEventArgs e) @@ -168,6 +138,112 @@ { this.editer.StartAddValve(); } + + private void TopMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetTopView(); + } + + private void BottomMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetBottomView(); + } + + private void LeftMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetLeftView(); + } + + private void RightMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetRightView(); + } + + private void FrontMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetFrontView(); + } + + private void BackMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetBackView(); + } + + private void BillboardText_Click(object sender, RoutedEventArgs e) + { + var list = _nw.Visuals.Select(x => new TextL3d() + { + Id = x.Id, + Text = x.Id + }).ToList(); + this.editer.SetBillboardText(list); + } + + private void CheckBox_Checked(object sender, RoutedEventArgs e) + { + this.editer.GridLinesVisible = true; + } + + private void ckGridLines_Unchecked(object sender, RoutedEventArgs e) + { + this.editer.GridLinesVisible = false; + } + + private void ckBackgroud_Checked(object sender, RoutedEventArgs e) + { + this.editer.BackgroudVisible = true; + this.editer.SetBackgroud("mt.png"); + } + + private void ckBackgroud_Unchecked(object sender, RoutedEventArgs e) + { + this.editer.BackgroudVisible = false; + } + + private void SouthWestMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetSouthWestView(); + } + + private void SouthEastMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetSouthEastView(); + } + + private void NonthWestMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetNorthWestView(); + } + + private void NonthEastMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SetNorthEastView(); + } + + private void SaveDefaultCameraMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.SaveDefaultCamera(); + } + + private void ApplyDefaultCameraMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.ApplyDefaultCamera(); + } + + private void StartEditMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.StartEdit(); + } + + private void EndEditCameraMenuItem_Click(object sender, RoutedEventArgs e) + { + this.editer.EndEdit(); + } + + private void FlowEffect_Click(object sender, RoutedEventArgs e) + { + this.editer.ShowFlowDirection(); + } } -- Gitblit v1.9.3