| | |
| | | namespace Yw.WinFrmUI.HydroL3d |
| | | using Yw.Untity; |
| | | |
| | | namespace Yw.WinFrmUI.HydroL3d |
| | | { |
| | | public partial class NetworkPanel : DevExpress.XtraEditors.XtraUserControl |
| | | { |
| | |
| | | |
| | | _network.Draw(gl); |
| | | |
| | | float[] minCorner = { _paras.BoundingBox.Min.X, _paras.BoundingBox.Min.Y, _paras.BoundingBox.Min.Z }; |
| | | float[] maxCorner = { _paras.BoundingBox.Max.X, _paras.BoundingBox.Max.Y, _paras.BoundingBox.Max.Z }; |
| | | //float[] minCorner = { _paras.BoundingBox.Min.X, _paras.BoundingBox.Min.Y, _paras.BoundingBox.Min.Z }; |
| | | //float[] maxCorner = { _paras.BoundingBox.Max.X, _paras.BoundingBox.Max.Y, _paras.BoundingBox.Max.Z }; |
| | | |
| | | gl.Begin(OpenGL.GL_POINT); |
| | | gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | gl.End(); |
| | | //gl.Begin(OpenGL.GL_POINT); |
| | | //gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | //gl.End(); |
| | | |
| | | gl.Begin(OpenGL.GL_POINT); |
| | | gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | gl.End(); |
| | | //gl.Begin(OpenGL.GL_POINT); |
| | | //gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | //gl.End(); |
| | | |
| | | gl.Begin(OpenGL.GL_LINE_LOOP); |
| | | // 绘制底面 |
| | | gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | gl.Vertex(maxCorner[0], minCorner[1], minCorner[2]); |
| | | gl.Vertex(maxCorner[0], maxCorner[1], minCorner[2]); |
| | | gl.Vertex(minCorner[0], maxCorner[1], minCorner[2]); |
| | | //gl.Begin(OpenGL.GL_LINE_LOOP); |
| | | //// 绘制底面 |
| | | //gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | //gl.Vertex(maxCorner[0], minCorner[1], minCorner[2]); |
| | | //gl.Vertex(maxCorner[0], maxCorner[1], minCorner[2]); |
| | | //gl.Vertex(minCorner[0], maxCorner[1], minCorner[2]); |
| | | |
| | | // 绘制顶面 |
| | | gl.Vertex(minCorner[0], minCorner[1], maxCorner[2]); |
| | | gl.Vertex(maxCorner[0], minCorner[1], maxCorner[2]); |
| | | gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | gl.Vertex(minCorner[0], maxCorner[1], maxCorner[2]); |
| | | //// 绘制顶面 |
| | | //gl.Vertex(minCorner[0], minCorner[1], maxCorner[2]); |
| | | //gl.Vertex(maxCorner[0], minCorner[1], maxCorner[2]); |
| | | //gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | //gl.Vertex(minCorner[0], maxCorner[1], maxCorner[2]); |
| | | |
| | | // 连接底面和顶面的边 |
| | | gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | gl.Vertex(minCorner[0], minCorner[1], maxCorner[2]); |
| | | gl.Vertex(maxCorner[0], minCorner[1], minCorner[2]); |
| | | gl.Vertex(maxCorner[0], minCorner[1], maxCorner[2]); |
| | | gl.Vertex(maxCorner[0], maxCorner[1], minCorner[2]); |
| | | gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | gl.Vertex(minCorner[0], maxCorner[1], minCorner[2]); |
| | | gl.Vertex(minCorner[0], maxCorner[1], maxCorner[2]); |
| | | gl.End(); |
| | | //// 连接底面和顶面的边 |
| | | //gl.Vertex(minCorner[0], minCorner[1], minCorner[2]); |
| | | //gl.Vertex(minCorner[0], minCorner[1], maxCorner[2]); |
| | | //gl.Vertex(maxCorner[0], minCorner[1], minCorner[2]); |
| | | //gl.Vertex(maxCorner[0], minCorner[1], maxCorner[2]); |
| | | //gl.Vertex(maxCorner[0], maxCorner[1], minCorner[2]); |
| | | //gl.Vertex(maxCorner[0], maxCorner[1], maxCorner[2]); |
| | | //gl.Vertex(minCorner[0], maxCorner[1], minCorner[2]); |
| | | //gl.Vertex(minCorner[0], maxCorner[1], maxCorner[2]); |
| | | //gl.End(); |
| | | |
| | | gl.Flush(); //强制刷新 |
| | | |
| | |
| | | |
| | | private void openGLControl1_MouseMove(object sender, MouseEventArgs e) |
| | | { |
| | | //var list = this.openGLControl1.OpenGL.UnProject(e.X, e.Y, 0); |
| | | //this.labelControl1.Text = DoubleListHelper.ToString(list); |
| | | var list = this.openGLControl1.OpenGL.UnProject(e.X, e.Y, 0); |
| | | this.labelControl1.Text = DoubleListHelper.ToString(list); |
| | | var hasMouseLeftDownRotate = MouseLeftDownRotate(e); |
| | | var hasMouseRightDownMove = MouseRightDownMove(e); |
| | | if (hasMouseLeftDownRotate || hasMouseRightDownMove) |