using System.Windows;
|
using HelixToolkit.Wpf;
|
using System.Windows.Media.Media3D;
|
using System.Windows.Input;
|
using Yw.WpfUI.Hydro;
|
using Yw.Epanet;
|
using System.Windows.Media;
|
|
|
namespace Yw.Wpf.Test.Core
|
{
|
public partial class MainWindow : Window
|
{
|
public MainWindow()
|
{
|
InitializeComponent();
|
this.Loaded += MainWindow_Loaded;
|
}
|
|
private NetworkL3d _nw = null;
|
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
{
|
var nw = LoadEpaNetwork();
|
//_nw = Get3dNetwork(nw);
|
_nw = new NetworkL3d();
|
this.editer.Initial(_nw);
|
}
|
|
private Yw.Epanet.Network LoadEpaNetwork()
|
{
|
var fileName = "wh.inp";
|
var nw = new Yw.Epanet.Network().ParseInpFile(fileName);
|
return nw;
|
}
|
|
private NetworkL3d Get3dNetwork(Yw.Epanet.Network nw)
|
{
|
string msg = null;
|
var nw3d = new NetworkL3d();
|
foreach (var tank in nw.Tanks)
|
{
|
var tank3d = new TankL3d();
|
tank3d.Id = tank.Id;
|
tank3d.Name = tank.Name;
|
tank3d.Position = new PointL3d()
|
{
|
X = (float)tank.Position.X,
|
Y = (float)tank.Position.Y,
|
Z = (float)tank.GetElev()
|
};
|
nw3d.Append(tank3d, out msg);
|
}
|
|
foreach (var junction in nw.Junctions)
|
{
|
var junction3d = new JunctionL3d();
|
junction3d.Id = junction.Id;
|
junction3d.Name = junction.Name;
|
junction3d.Position = new PointL3d()
|
{
|
X = (float)junction.Position.X,
|
Y = (float)junction.Position.Y,
|
Z = (float)junction.GetElev()
|
};
|
nw3d.Append(junction3d, out msg);
|
}
|
|
foreach (var pipe in nw.Pipes)
|
{
|
var pipe3d = new PipeL3d();
|
pipe3d.Id = pipe.Id;
|
pipe3d.Name = pipe.Name;
|
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);
|
}
|
|
foreach (var pump in nw.Pumps)
|
{
|
var pump3d = new PumpL3d();
|
pump3d.Id = pump.Id;
|
pump3d.Name = pump.Name;
|
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);
|
}
|
|
foreach (var valve in nw.Valves)
|
{
|
var valve3d = new ValveL3d();
|
valve3d.Id = valve.Id;
|
valve3d.Name = valve.Name;
|
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);
|
}
|
|
return nw3d;
|
|
}
|
|
private void AddJunction_Click(object sender, RoutedEventArgs e)
|
{
|
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)
|
{
|
this.editer.StartAddHorizPipe();
|
}
|
|
private void AddVertPipe_Click(object sender, RoutedEventArgs e)
|
{
|
this.editer.StartAddVertPipe();
|
}
|
|
private void AddPump_Click(object sender, RoutedEventArgs e)
|
{
|
this.editer.StartAddPump();
|
}
|
|
private void AddValve_Click(object sender, RoutedEventArgs e)
|
{
|
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();
|
}
|
}
|
|
|
}
|