yangyin
2024-08-06 dee5a1dba25401f51455d86a9c8d2156775e1d12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.EPAnet.Calcu;
using Yw.WinFrmUI.Q3D;
 
namespace Hydro.ClientTool
{
    public partial class Form2 : Form
    {
        public Form2()
        {
 
            InitializeComponent();
        }
 
     
 
        private void Form2_Load(object sender, EventArgs e)
        {
            NetWork network = new NetWork();
            network.BuildFromInp(@"temp/temp.inp");
            MapViewNetWork mapNetwork = new MapViewNetWork();
            foreach (var node in network.Nodes)
            {
                NodeViewModel viewNode=null;
                if (node is MeterModel meter)
                {
                    viewNode = new MeterViewModel();
                    viewNode.X = meter.X;
                    viewNode.Y = meter.Y;
                    viewNode.Name = meter.Name;
                    viewNode.ID = meter.ID;
                    viewNode.Z = meter.Elev;
                    viewNode.Demand = meter.Demand;
                }
                else if (node is JunctionModel j)
                {
                    viewNode = new JunctionViewModel();
                    viewNode.X = j.X;
                    viewNode.Y = j.Y;
                    viewNode.Name = j.Name;
                    viewNode.ID = j.ID;
                    viewNode.Z = j.Elev;
                    viewNode.Demand = j.Demand; 
                }
                else if (node is ReservoisModel res)
                {
                    viewNode= new ReservoirViewModel();
                    viewNode.X = res.X;
                    viewNode.Y = res.Y;
                    viewNode.Name = res.Name;
                    viewNode.ID = res.ID;
                    viewNode.Z = res.Elev;
                    ((ReservoirViewModel)viewNode).Head = res.Head;
                }
                
                mapNetwork.Nodes.Add(viewNode);
            }
            foreach(var link in network.Links)
            {
                LinkViewModel viewLink = null;
                //判断如果是管道
                if (link is PipeModel pipe)
                {
                    viewLink = new PipeViewModel();
                    viewLink.ID = pipe.ID;
                    viewLink.Node1 = pipe.Node1;
                    viewLink.Node2 = pipe.Node2;
                    viewLink.Diameter = pipe.Diameter;
                    viewLink.Length = pipe.Length;
                    viewLink.Roughness = pipe.Roughness;
          
                }
                else if (link is ValveModel valve)
                {
                    viewLink = new ValveViewModel();
                    viewLink.ID= valve.ID;
                    viewLink.Node1 = valve.Node1;
                    viewLink.Node2 = valve.Node2;
                    viewLink.Diameter = valve.Diameter;
                    viewLink.Length = valve.Length;
                    viewLink.Roughness = valve.Roughness;
                }
                 mapNetwork.Links.Add(viewLink);
 
            }
            mapNetwork.BuildRelation();
            map.SetData(mapNetwork);
        }
 
        private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            map.MapViewer_KeyDown(sender, e);
        }
    }
}