コード例 #1
0
ファイル: UserInput.cs プロジェクト: jmorrison150/RhinoVR
 public static void SunActive()
 {
     if (!UserInput._controller.isConnected || UserInput._miniViewportsOn)
     {
         return;
     }
     UserInput._controller.GetStateOfXController();
     UserInput.SpeedParameter();
     if (UserInput._controller.Y_Keydown())
     {
         if (!UserInput._shadowOn)
         {
             UserInput._sunControllerConduit.SunlightSettings(RhinoDocument.ActiveDoc, VR_PANEL.Latitude, VR_PANEL.Longitude);
             UserInput._sunControllerConduit.SunSetToNow(ref UserInput._dateParam, ref UserInput._timeParam);
             UserInput._sunControllerConduit.SunLightOn();
             UserInput._controller.SetVibration(true, true, 400);
             UserInput._shadowOn = true;
         }
         else
         {
             UserInput._sunControllerConduit.SunLightOff();
             UserInput._sunControllerConduit.Enabled = (false);
             UserInput._controller.SetVibration(true, true, 400);
             UserInput._sunSliderOn = false;
             UserInput._shadowOn    = false;
         }
     }
     if (UserInput._controller.LeftThumb_Keydown() && UserInput._shadowOn)
     {
         if (!UserInput._sunSliderOn)
         {
             UserInput._sunSliderOn = true;
             UserInput._sunControllerConduit.Enabled = (true);
         }
         else
         {
             UserInput._sunSliderOn = false;
             UserInput._sunControllerConduit.Enabled = (false);
         }
     }
     if (UserInput._sunSliderOn && !UserInput._miniViewportsOn)
     {
         float leftThumbX;
         if (UserInput._controller.LeftThumbX_Active(out leftThumbX))
         {
             UserInput._dateParam += (double)leftThumbX * UserInput._norm * (double)UserInput._speedX1 * (double)UserInput._speedX2;
             if (UserInput._dateParam > 1.0)
             {
                 UserInput._dateParam = 0.0;
             }
             if (UserInput._dateParam < 0.0)
             {
                 UserInput._dateParam = 1.0;
             }
         }
         float rightThumbX;
         if (UserInput._controller.RightThumbX_Active(out rightThumbX))
         {
             UserInput._timeParam += (double)rightThumbX * UserInput._norm * (double)UserInput._speedX1 * (double)UserInput._speedX2;
             if (UserInput._timeParam > 1.0)
             {
                 UserInput._timeParam = 0.0;
             }
             if (UserInput._timeParam < 0.0)
             {
                 UserInput._timeParam = 1.0;
             }
         }
         UserInput._sunControllerConduit.SunPosition(UserInput._dateParam, UserInput._timeParam);
     }
     UserInput._controller.Vibration_Active();
 }
コード例 #2
0
ファイル: UserInput.cs プロジェクト: jmorrison150/RhinoVR
 public static void MiniViewportsActive()
 {
     if (UserInput._controller.isConnected)
     {
         UserInput._controller.GetStateOfXController();
         UserInput.SpeedParameter();
         if (UserInput._controller.A_Keydown())
         {
             if (!UserInput._miniViewportsOn)
             {
                 if (Viewports.RiftViews[2] != null && Viewports.RiftViews[2].Document != null)
                 {
                     Viewports.CreateMiniViewports();
                     UserInput._target          = Viewports.MiniViews[2].MainViewport.CameraTarget;
                     UserInput._location        = Viewports.MiniViews[2].MainViewport.CameraLocation;
                     UserInput._cameraX         = Viewports.MiniViews[2].MainViewport.CameraX;
                     UserInput._cameraY         = Viewports.MiniViews[2].MainViewport.CameraY;
                     UserInput._miniViewportsOn = true;
                     UserInput._controller.SetVibration(true, true, 400);
                     // ISSUE: explicit reference operation
                     UserInput._scaleFactor = Math.PI / 2.0 / ((Point3d)@UserInput._location).DistanceTo(UserInput._target);
                 }
                 else
                 {
                     UserInput._controller.SetVibration(false, true, 1000);
                 }
             }
             else
             {
                 Viewports.CloseMiniViewports();
                 UserInput._miniViewportsOn = false;
                 UserInput._controller.SetVibration(true, true, 400);
             }
         }
         if (UserInput._miniViewportsOn)
         {
             float leftThumbX;
             if (UserInput._controller.LeftThumbX_Active(out leftThumbX))
             {
                 Transform transform = Transform.Rotation((double)leftThumbX * UserInput._norm2 * (double)UserInput._speedX1 * (double)UserInput._speedX2, new Vector3d(0.0, 0.0, 1.0), UserInput._target);
                 (UserInput._location).Transform(transform);
                 (UserInput._cameraX).Transform(transform);
                 (UserInput._cameraY).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
                 Viewports.MiniViews[2].MainViewport.CameraUp = UserInput._cameraY;
             }
             float leftThumbY;
             if (UserInput._controller.LeftThumbY_Active(out leftThumbY))
             {
                 Transform transform = Transform.Rotation((double)leftThumbY * UserInput._norm2 * (double)UserInput._speedX1 * (double)UserInput._speedX2, -(UserInput._cameraX), UserInput._target);
                 (UserInput._location).Transform(transform);
                 (UserInput._cameraX).Transform(transform);
                 (UserInput._cameraY).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
                 Viewports.MiniViews[2].MainViewport.CameraUp = UserInput._cameraY;
             }
             float rightThumbX;
             if (UserInput._controller.RightThumbX_Active(out rightThumbX))
             {
                 Transform transform = Transform.Translation(Vector3d.Multiply(Vector3d.Multiply(Vector3d.Multiply(UserInput._cameraX, (double)rightThumbX), (double)UserInput._speedX1), (double)UserInput._speedX2));
                 (UserInput._target).Transform(transform);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
             float rightThumbY;
             if (UserInput._controller.RightThumbY_Active(out rightThumbY))
             {
                 Transform transform = Transform.Translation(Vector3d.Multiply(Vector3d.Multiply(Vector3d.Multiply(UserInput._cameraY, (double)rightThumbY), (double)UserInput._speedX1), (double)UserInput._speedX2));
                 (UserInput._target).Transform(transform);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
             if (UserInput._controller.DPadUp_KeyOn())
             {
                 double    a         = Math.Atan(UserInput._scaleFactor * (UserInput._location).DistanceTo(UserInput._target)) * 2.0;
                 Transform transform = Transform.Scale(UserInput._target, 1.0 - Math.Sin(a) * UserInput._norm2 * (double)UserInput._speedX1 * (double)UserInput._speedX2);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
             if (UserInput._controller.DPadDown_KeyOn())
             {
                 double    a         = Math.Atan(UserInput._scaleFactor * (UserInput._location).DistanceTo(UserInput._target)) * 2.0;
                 Transform transform = Transform.Scale(UserInput._target, Math.Sin(a) * UserInput._norm2 * (double)UserInput._speedX1 * (double)UserInput._speedX2 + 1.0);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
             if (UserInput._controller.DPadLeft_KeyOn())
             {
                 Transform transform = Transform.Translation(Vector3d.Multiply(Vector3d.Multiply(Vector3d.Multiply(UserInput._cameraX, -0.5), (double)UserInput._speedX1), (double)UserInput._speedX2));
                 (UserInput._target).Transform(transform);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
             if (UserInput._controller.DPadRight_KeyOn())
             {
                 Transform transform = Transform.Translation(Vector3d.Multiply(Vector3d.Multiply(Vector3d.Multiply(UserInput._cameraX, 0.5), (double)UserInput._speedX1), (double)UserInput._speedX2));
                 (UserInput._target).Transform(transform);
                 (UserInput._location).Transform(transform);
                 Viewports.MiniViews[2].MainViewport.SetCameraLocations(UserInput._target, UserInput._location);
             }
         }
         UserInput._controller.Vibration_Active();
     }
     Viewports.UpdateMiniViewports();
 }
コード例 #3
0
ファイル: UserInput.cs プロジェクト: jmorrison150/RhinoVR
        public static void MovementAndOrientation(ref Point3d startPos, ref Transform startDir, Transform rollPitchYaw, Transform oculusToRhino, RhinoDoc rhinoDocument)
        {
            if (!UserInput._controller.isConnected || UserInput._sunSliderOn || UserInput._miniViewportsOn)
            {
                return;
            }
            List <double> zPositions = new List <double>();

            UserInput.FloorOrientPosition(startPos, ref zPositions, rhinoDocument);
            UserInput._controller.GetStateOfXController();
            UserInput.SpeedParameter();
            if (zPositions.Count < 1)
            {
                // ISSUE: explicit reference operation
                zPositions.Add(((Point3d)@startPos).Z);
            }
            else if (zPositions.Count > 1)
            {
                if (UserInput._controller.LeftShoulder_Keydown())
                {
                    ++UserInput._zIndex;
                    if (UserInput._zIndex >= zPositions.Count)
                    {
                        UserInput._zIndex = 0;
                    }
                    UserInput._controller.SetVibration(true, false, 600);
                }
                if (UserInput._controller.RightShoulder_Keydown())
                {
                    --UserInput._zIndex;
                    if (UserInput._zIndex < 0)
                    {
                        UserInput._zIndex = zPositions.Count - 1;
                    }
                    UserInput._controller.SetVibration(true, false, 600);
                }
            }
            else
            {
                UserInput._zIndex = 0;
            }
            UserInput._controller.Vibration_Active();
            float rightThumbX;

            if (UserInput._controller.RightThumbX_Active(out rightThumbX))
            {
                UserInput._rotationAngle += (float)(-(double)rightThumbX / 50.0) * UserInput._speedX1 * UserInput._speedX2;
                startDir = Transform.Rotation((double)UserInput._rotationAngle, new Vector3d(0.0, 0.0, 1.0), new Point3d(0.0, 0.0, 0.0));
            }
            float leftThumbX;

            if (UserInput._controller.LeftThumbX_Active(out leftThumbX))
            {
                Vector3d vector3d = (startDir * (oculusToRhino * (rollPitchYaw * (new Vector3d((double)leftThumbX / 20.0 * (double)UserInput._speedX1 * (double)UserInput._speedX2 * (double)UserInput._speedX10, 0.0, 0.0)))));
                Point3d  local    = startPos;
                // ISSUE: explicit reference operation
                Point3d point3d = local + (new Vector3d(((Vector3d)@vector3d).X, ((Vector3d)@vector3d).Y, 0.0));
                local = point3d;
            }
            float leftThumbY;

            if (UserInput._controller.LeftThumbY_Active(out leftThumbY))
            {
                Vector3d vector3d = startDir * (oculusToRhino * (rollPitchYaw * (new Vector3d(0.0, 0.0, -((double)leftThumbY / 20.0) * (double)UserInput._speedX1 * (double)UserInput._speedX2 * (double)UserInput._speedX10))));
                Point3d  local    = startPos;
                // ISSUE: explicit reference operation
                Point3d point3d = local + (new Vector3d(((Vector3d)@vector3d).X, ((Vector3d)@vector3d).Y, 0.0));
                local = point3d;
            }
            // ISSUE: explicit reference operation
            // ISSUE: explicit reference operation
            startPos            = new Point3d(((Point3d)@startPos).X, ((Point3d)@startPos).Y, zPositions[UserInput._zIndex]);
            UserInput._startPos = startPos;
        }