
Untitled
By: a guest on
Apr 30th, 2012 | syntax:
C# | size: 0.58 KB | hits: 18 | expires: Never
public Vector2 GetMouseGridPosition() {
Vector3 near = new Vector3(new Vector2(lastpos.X, lastpos.Y), 0);
Vector3 far = new Vector3(new Vector2(lastpos.X, lastpos.Y), 1);
Viewport viewport = new Viewport(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
near = viewport.Unproject(near, camera.Projection, camera.View, camera.World);
far = viewport.Unproject(far, camera.Projection, camera.View, camera.World);
Vector3 nrm = Vector3.Normalize(far - near);
Vector3 x = near - nrm * (near.Y / nrm.Y);
return new Vector2(x.X, x.Z);
}