| | |
| | | { |
| | | var nw = LoadEpaNetwork(); |
| | | var nw3d = Get3dNetwork(nw); |
| | | this.viewer.Initial(nw3d); |
| | | this.editer.Initial(nw3d); |
| | | //BuildSimpleNetwork(this.viewport,nw3d.Nodes,nw3d.Links); |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | public void BuildSimpleNetwork(HelixViewport3D viewport, List<NodeL3d> nodes, List<LinkL3d> pipes) |
| | | private void AddJunction_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | // 清空现有内容 |
| | | viewport.Children.Clear(); |
| | | |
| | | // 添加光源 |
| | | viewport.Children.Add(new DefaultLights()); |
| | | |
| | | // 创建节点集合(点精灵技术) |
| | | var pointsVisual = new PointsVisual3D |
| | | { |
| | | Size = 5, // 显示大小(屏幕像素) |
| | | Color = Colors.Red, |
| | | |
| | | }; |
| | | |
| | | |
| | | nodes.ForEach(x => pointsVisual.Points.Add(new Point3D(x.Position.X, x.Position.Y, x.Position.Z))); |
| | | |
| | | viewport.Children.Add(pointsVisual); |
| | | |
| | | // 2. 显示管道线段(使用LinesVisual3D) |
| | | var linesVisual = new LinesVisual3D |
| | | { |
| | | Points = new Point3DCollection(pipes.Count * 2), // 预分配内存 |
| | | Color = Colors.Blue, |
| | | Thickness = 2.0 |
| | | }; |
| | | |
| | | foreach (var pipe in pipes) |
| | | { |
| | | linesVisual.Points.Add(new Point3D(pipe.StartPosition.X, pipe.StartPosition.Y, pipe.StartPosition.Z)); |
| | | linesVisual.Points.Add(new Point3D(pipe.EndPosition.X, pipe.EndPosition.Y, pipe.EndPosition.Z)); |
| | | } |
| | | |
| | | viewport.Children.Add(linesVisual); |
| | | // 4. 自动缩放到合适大小 |
| | | viewport.ZoomExtents(); |
| | | this.editer.StartAddJunction(); |
| | | } |
| | | |
| | | private void AddReservoir_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.editer.StartAddReservoir(); |
| | | } |
| | | |
| | | private void AddTank_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.editer.StartAddTank(); |
| | | } |
| | | |
| | | private void AddPipe_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.editer.StartAddPipe(); |
| | | } |
| | | |
| | | private void AddHorizPipe_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | private void AddVertPipe_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | private void AddPump_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.editer.StartAddPump(); |
| | | } |
| | | |
| | | private void AddValve_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.editer.StartAddValve(); |
| | | } |
| | | } |
| | | |
| | | |