Exemplo n.º 1
0
        private void MouseClickOnMap(Object s, GLMouseEventArgs e)
        {
            int distmovedsq = gl3dcontroller.MouseMovedSq(e);        //3dcontroller is monitoring mouse movements

            if (distmovedsq < 4)
            {
                var geo = findshader.GetShader <GLPLGeoShaderFindTriangles>(OpenTK.Graphics.OpenGL4.ShaderType.GeometryShader);
                geo.SetScreenCoords(e.ViewportLocation, matrixcalc.ViewPort.Size);

                rifind.Execute(findshader, glwfc.RenderState);

                var res = geo.GetResult();
                if (res != null)
                {
                    for (int i = 0; i < res.Length; i++)
                    {
                        System.Diagnostics.Debug.WriteLine(i + " = " + res[i]);
                    }

                    if (e.Button == GLMouseEventArgs.MouseButtons.Left)
                    {
                        track = (int)res[0].Y;
                    }
                    else if (e.Button == GLMouseEventArgs.MouseButtons.Right)
                    {
                        rightclickmenubody.Tag = (int)res[0].Y;
                        rightclickmenubody.Show(displaycontrol, e.Location);
                    }
                }
                else
                {
                    if (e.Button == GLMouseEventArgs.MouseButtons.Right)
                    {
                        rightclickmenuscreen.Show(displaycontrol, e.Location);
                    }
                }
            }
        }