private void Timer_Tick(object sender, EventArgs e) { if (!EnableAnimation) { return; } if (EnablePlane1) { Plane1 = new Plane(Plane1.Normal, Plane1.D + plane1Factor); if (Plane1.D < -15 || Plane1.D > 0) { plane1Factor = -plane1Factor; } Plane1Transform.OffsetY = -Plane1.D; } if (EnablePlane2) { Plane2 = new Plane(Plane2.Normal, Plane2.D + plane2Factor); if (Plane2.D < -15 || Plane2.D > 5) { plane2Factor = -plane2Factor; } Plane2Transform.OffsetX = -Plane2.D; } }
public static Vector3 ScreenToV3(GeneralCameraComponent camera, Vector2 screen, float winW, float winH, float delta) { var c = new Viewport().UnProject(camera.GetState(), winW, winH, screen); var plane = new SharpDX.Plane(camera.Position.ToSDXVector3(), camera.LookDirection.ToSDXVector3()); var ray = new SharpDX.Ray(c.Origin.ToSDXVector3(), -c.Direction.ToSDXVector3()); var inter = plane.Intersects(ref ray, out SharpDX.Vector3 point); return(new Vector3(point.X, point.Y, point.Z)); }
public Vector3 ScreenToV3(Vector2 screen, CameraState camera, IAppWindow window) { var winW = window.Width; var winH = window.Height; var c = UnProject(screen, camera, window); var plane = new SharpDX.Plane(camera.Position.ToSDXVector3(), camera.LookDirection.ToSDXVector3()); var ray = new SharpDX.Ray(c.Origin.ToSDXVector3(), -c.Direction.ToSDXVector3()); var inter = plane.Intersects(ref ray, out SharpDX.Vector3 point); return(new Vector3(point.X, point.Y, point.Z)); }