//! Feedback line buffer for OpenGL feedback, used by mvgraphics.cpp /* * class FeedbackLineBufferItem * { * public double type; * public Vector2[] vertices = new Vector2[2]; * } */ public Vector3 GetMouseVector(Vector3 OurPos, Rot OurRot, int mousex, int mousey) { IRenderer renderer = RendererFactory.GetInstance(); Vector3 MouseVectorObserverAxes = new Vector3( -renderer.InnerWindowWidth / 2 + mousex, -renderer.ScreenDistanceScreenCoords, renderer.InnerWindowHeight / 2 - mousey); //Console.WriteLine("MouseVectorObserverAxes: " + MouseVectorObserverAxes); MouseVectorObserverAxes.Normalize(); //Console.WriteLine("MouseVectorObserverAxes (normalized): " + MouseVectorObserverAxes); Vector3 MouseVectorWorldAxes = MouseVectorObserverAxes * OurRot.Inverse(); //Console.WriteLine("MouseVectorWorldAxes: " + MouseVectorWorldAxes.ToString()); MouseVectorWorldAxes.Normalize(); return(MouseVectorWorldAxes); }
//! Feedback line buffer for OpenGL feedback, used by mvgraphics.cpp /* class FeedbackLineBufferItem { public double type; public Vector2[] vertices = new Vector2[2]; } */ public Vector3 GetMouseVector(Vector3 OurPos, Rot OurRot, int mousex, int mousey) { IRenderer renderer = RendererFactory.GetInstance(); Vector3 MouseVectorObserverAxes = new Vector3( - renderer.InnerWindowWidth / 2 + mousex, - renderer.ScreenDistanceScreenCoords, renderer.InnerWindowHeight / 2 - mousey); //Console.WriteLine("MouseVectorObserverAxes: " + MouseVectorObserverAxes); MouseVectorObserverAxes.Normalize(); //Console.WriteLine("MouseVectorObserverAxes (normalized): " + MouseVectorObserverAxes); Vector3 MouseVectorWorldAxes = MouseVectorObserverAxes * OurRot.Inverse(); //Console.WriteLine("MouseVectorWorldAxes: " + MouseVectorWorldAxes.ToString()); MouseVectorWorldAxes.Normalize(); return MouseVectorWorldAxes; }