示例#1
0
 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;
     }
 }
示例#2
0
            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));
            }
示例#3
0
        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));
        }