private void openGlCtrl_MouseDown(object sender, MouseButtonEventArgs e) { Mouse.Capture(sender as System.Windows.IInputElement); Debug.WriteLine("LMBDown"); Point mousePos = e.GetPosition(openGlCtrl); _ShaderRenderer.GetDepth((int)(mousePos.X) / _RaytracerOptions._Resolution, (int)(mousePos.Y) / _RaytracerOptions._Resolution); Debug.WriteLine("click (x = " + mousePos.X + ", y=" + mousePos.Y + ")"); Vector3 dir = (_Scene._Camera._Target - _Scene._Camera._Position); dir.Normalise(); _Pitch = Math.Asin(dir.y); dir.y = 0; dir.Normalise(); _Yaw = Math.Asin(dir.x); if (dir.z < 0) { _Yaw = (Math.PI) - _Yaw; } _DragStart = e.GetPosition(this); // Debug.WriteLine("dragstart (x = " + _DragStart.X + ", y=" + _DragStart.Y + ")"); dir = (_Scene._Camera._Target - _Scene._Camera._Position); dir.Normalise(); dir *= _Scene._Camera._FocusDepth; _Scene._Camera._Target = _Scene._Camera._Position + dir; _Scene._Camera.UpdateGUI(); _ImageDrag = true; }