using OpenTK.Graphics.OpenGL;
namespace Yw.WinFrmUI.Hydro
{
///
///
///
public partial class OrthoViewer2d : UserControl
{
///
///
///
public OrthoViewer2d()
{
InitializeComponent();
InitializeGLEvents();
}
private NetworkL3d _nw = null;
private OrthoViewer2dHelper _helper = null;
///
/// 初始化管网
///
public void InitialNetwork(NetworkL3d nw)
{
_nw = nw;
_helper = new OrthoViewer2dHelper();
_helper.Initial(this.glControl1, _nw);
}
#region 私有方法
//初始化GL事件
private void InitializeGLEvents()
{
this.glControl1.Load += glControl_Load;
this.glControl1.Resize += glControl_Resize;
this.glControl1.Paint += glControl_Paint;
this.glControl1.MouseWheel += OnMouseWheel;
this.glControl1.MouseDown += OnMouseDown;
this.glControl1.MouseUp += OnMouseUp;
this.glControl1.MouseMove += OnMouseMove;
this.glControl1.MouseClick += OnMouseClick;
this.glControl1.MouseDoubleClick += OnMouseDoubleClick;
}
#endregion
#region 鼠标交互
//加载事件
private void glControl_Load(object sender, EventArgs e)
{
_helper?.Load();
}
// 尺寸改变
private void glControl_Resize(object sender, EventArgs e)
{
_helper?.Resize();
}
// 绘制
private void glControl_Paint(object sender, PaintEventArgs e)
{
_helper?.Render();
}
//鼠标滚轮
private void OnMouseWheel(object sender, MouseEventArgs e)
{
_helper?.MouseWheel(e);
}
// 鼠标按下
private void OnMouseDown(object sender, MouseEventArgs e)
{
_helper?.MouseDown(e);
}
//鼠标弹起
private void OnMouseUp(object sender, MouseEventArgs e)
{
_helper?.MouseUp(e);
}
//鼠标移动
private void OnMouseMove(object sender, MouseEventArgs e)
{
_helper?.MouseMove(e);
}
//鼠标点击
private void OnMouseClick(object sender, MouseEventArgs e)
{
_helper?.MouseClick(e);
}
//鼠标双击
private void OnMouseDoubleClick(object sender, MouseEventArgs e)
{
_helper?.MouseDoubleClick(e);
}
#endregion
}
}