Exemplo n.º 1
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (controller == InputManager.ControllerName.Brush)
     {
         if (App.Instance.IsInStateThatAllowsPainting())
         {
             if (m_PaintingActive)
             {
                 // TODO: Make snap work with non-line shapes.
                 if (PointerManager.m_Instance.StraightEdgeModeEnabled &&
                     PointerManager.m_Instance.StraightEdgeGuideIsLine)
                 {
                     InputManager.Brush.Geometry.TogglePadSnapHint(
                         PointerManager.m_Instance.StraightEdgeGuide.SnapEnabled,
                         enabled: true);
                 }
             }
             else
             {
                 InputManager.Brush.Geometry.ShowBrushSizer();
                 if (m_BimanualTape)
                 {
                     InputManager.Brush.Geometry.TogglePadRevolverHint(m_RevolverActive, enabled: true);
                 }
                 else
                 {
                     InputManager.Brush.Geometry.TogglePadLazyInputHint(m_LazyInputActive, m_LazyInputTangentMode, enabled: true);
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        // Determines when you can grab.  1 = best, 0 = worst, -1 = invalid
        public override float GetActivationScore(
            Vector3 vControllerPos, InputManager.ControllerName name)
        {
            float baseScore = base.GetActivationScore(vControllerPos, name);

            return(baseScore);
        }
Exemplo n.º 3
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (controller == InputManager.ControllerName.Brush)
     {
         InputManager.Brush.Geometry.ShowPinToggle(m_InPinningMode);
     }
 }
Exemplo n.º 4
0
 public void DisableControllerTutorial(InputManager.ControllerName eName) {
   ControllerTutorialScript tutorial =
       InputManager.m_Instance.GetControllerTutorial(eName);
   if (tutorial) {
     tutorial.DisableTutorialObject();
   }
 }
Exemplo n.º 5
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (controller == InputManager.ControllerName.Brush)
     {
         InputManager.Brush.Geometry.ShowBrushSizer();
     }
 }
Exemplo n.º 6
0
        /// Display an error message to the user, related to an action taken
        /// by the specified controller.
        public static void Error(InputManager.ControllerName controller,
                                 string msg,
                                 System.Object detail = null)
        {
            // If our singleton instances haven't been assigned, defer the error.
            if (m_Instance == null || ControllerConsoleScript.m_Instance == null)
            {
                DeferError(controller, msg, detail);
            }
            else
            {
                Debug.LogErrorFormat("User-visible error: {0}\nDetail: {1}", msg, detail);

                // In the future, maybe use color or something instead of prepending ERROR
                string card    = string.Format("ERROR: {0}", msg);
                float  cardPop = 1.0f + InfoCardAnimation.s_NumCards * 0.2f;
                m_Instance.CreateInfoCardAtController(controller, card, cardPop, false);

                ControllerConsoleScript.m_Instance.AddNewLine(msg, true);
                if (detail != null)
                {
                    string detailStr = detail.ToString();
                    if (detailStr.Length > CONTROLLER_DETAIL_MAX_LENGTH)
                    {
                        detailStr = detailStr.Substring(0, CONTROLLER_DETAIL_MAX_LENGTH - 3) + " ...";
                    }
                    ControllerConsoleScript.m_Instance.AddNewLine(detailStr, false);
                }
            }
        }
Exemplo n.º 7
0
 override public float GetActivationScore(
     Vector3 controllerPos, InputManager.ControllerName name) {
   if (VideoRecorderUtils.ActiveVideoRecording != null || m_OverridePathT != null) {
     return -1.0f;
   }
   return base.GetActivationScore(controllerPos, name);
 }
Exemplo n.º 8
0
        private float PrimaryAxis(InputManager.ControllerName name, GetVrInputHelper helper,
                                  SteamVR_Action_Vector2 action)
        {
            bool    scrollX = App.VrSdk.VrControls.PrimaryScrollDirectionIsX(Behavior.ControllerName);
            Vector2 axis    = helper.Axis(action);

            return(scrollX ? axis.x : axis.y);
        }
Exemplo n.º 9
0
 public override void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (!SketchControlsScript.m_Instance.IsUserTwoHandGrabbingWidget() &&
         SketchControlsScript.m_Instance.OneHandGrabController == controller)
     {
         InputManager.Controllers[(int)controller].Geometry.ShowDuplicateOption();
     }
 }
Exemplo n.º 10
0
 virtual public float GetSizeRatio(
     InputManager.ControllerName controller, VrInput input)
 {
     if (controller == InputManager.ControllerName.Brush)
     {
         return(GetSize01());
     }
     return(0.0f);
 }
Exemplo n.º 11
0
        public bool AnalogIsStick(InputManager.ControllerName name)
        {
            var style = VrControls.GetBehavior(name).ControllerGeometry.Style;

            return(style == ControllerStyle.Wmr ||
                   style == ControllerStyle.OculusTouch ||
                   style == ControllerStyle.Knuckles ||
                   style == ControllerStyle.Cosmos);
        }
Exemplo n.º 12
0
 public void ActivateControllerTutorial(InputManager.ControllerName eName, bool bActivate) {
   ControllerTutorialScript tutorial =
       InputManager.m_Instance.GetControllerTutorial(eName);
   if (tutorial) {
     tutorial.Activate(bActivate);
     if (bActivate) {
       AudioManager.m_Instance.PlayHintAnimateSound(tutorial.transform.position);
     }
   }
 }
Exemplo n.º 13
0
 public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     // There's an order of operations problem here.  In practice, I don't think it's an issue
     // right now, but this will need to be rethought if multiple UIComponents expect to assign
     // controller materials and play nicely.
     for (int i = 0; i < m_UIComponents.Count; ++i)
     {
         m_UIComponents[i].AssignControllerMaterials(controller);
     }
 }
Exemplo n.º 14
0
        public bool PrimaryScrollDirectionIsX(InputManager.ControllerName name)
        {
            var behavior = GetBehavior(name);

            if (behavior.ControllerGeometry.Style == ControllerStyle.LogitechPen)
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 15
0
        public Vector2 TriggerActivationRange(InputManager.ControllerName name)
        {
            var behavior = GetBehavior(name);

            if (behavior.ControllerGeometry.Style == ControllerStyle.LogitechPen)
            {
                return(m_LogitechPenActivationRange);
            }
            return(m_TriggerActivationRange);
        }
Exemplo n.º 16
0
 public void WobblePin(InputManager.ControllerName heldController)
 {
     RefreshPositionAndScale();
     SwitchPinState(PinState.Wobbling);
     // If the user tries to grab a pinned widget, give a little buzz.
     if (heldController == InputManager.ControllerName.Brush ||
         heldController == InputManager.ControllerName.Wand)
     {
         InputManager.m_Instance.TriggerHapticsPulse(heldController, 3, 0.10f, 0.07f);
     }
 }
Exemplo n.º 17
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (controller == InputManager.ControllerName.Brush)
     {
         InputManager.Brush.Geometry.ShowSelectionToggle();
         if (SketchControlsScript.m_Instance.IsUsersBrushIntersectingWithSelectionWidget())
         {
             InputManager.Brush.Geometry.ShowDuplicateOption();
         }
     }
 }
Exemplo n.º 18
0
        public override float GetActivationScore(
            Vector3 vControllerPos, InputManager.ControllerName name)
        {
            float baseScore = base.GetActivationScore(vControllerPos, name);

            // don't try to scale if invalid; scaling by zero will make it look valid
            if (baseScore < 0)
            {
                return(baseScore);
            }
            return(baseScore * Mathf.Pow(1 - m_Size / m_MaxSize_CS, 2));
        }
Exemplo n.º 19
0
  override public void AssignControllerMaterials(InputManager.ControllerName controller) {
    if (m_InteractingController != controller) {
      return;
    }

    // Snap is allowed on rotation and position knots.
    bool show = (m_ActiveKnot != null) &&
        (m_ActiveKnot.knot.KnotType == CameraPathKnot.Type.Rotation ||
         m_ActiveKnot.knot.KnotType == CameraPathKnot.Type.Position);
    InputManager.GetControllerGeometry(m_InteractingController)
                .TogglePadSnapHint(SnapEnabled, show);
  }
Exemplo n.º 20
0
        public float GetControllerPadShaderRatio(InputManager.ControllerName controller)
        {
            float shaderRatio = 0.0f;

            for (int i = 0; i < m_UIComponents.Count; ++i)
            {
                // I guess we'll just take the max for all UIComponents?
                shaderRatio =
                    Mathf.Max(m_UIComponents[i].GetControllerPadShaderRatio(controller), shaderRatio);
            }
            return(shaderRatio);
        }
Exemplo n.º 21
0
        override public float GetActivationScore(
            Vector3 vControllerPos, InputManager.ControllerName name)
        {
            Vector3 pos_OS    = transform.InverseTransformPoint(vControllerPos);
            float   baseScore = 1f - pos_OS.magnitude / kRadiusInObjectSpace;

            // don't try to scale if invalid; scaling by zero will make it look valid
            if (baseScore < 0)
            {
                return(baseScore);
            }
            return(baseScore * Mathf.Pow(1 - m_Size / m_MaxSize_CS, 2));
        }
Exemplo n.º 22
0
        public bool IsInRange(InputManager.ControllerName controllerName)
        {
            ControllerInfo interactingControllerInfo = InputManager.Controllers[(int)controllerName];

            Vector3 point = interactingControllerInfo.Transform.position;

            Vector3 vInvTransformedPos = m_BoxCollider.transform.InverseTransformPoint(point) - m_BoxCollider.center;
            Vector3 vSize = m_BoxCollider.size * 0.5f;

            return(Mathf.Abs(vInvTransformedPos.x) <= vSize.x &&
                   Mathf.Abs(vInvTransformedPos.y) <= vSize.y &&
                   Mathf.Abs(vInvTransformedPos.z) <= vSize.z);
        }
Exemplo n.º 23
0
        override public float GetActivationScore(
            Vector3 vControllerPos, InputManager.ControllerName name)
        {
            float fRadius   = Mathf.Abs(GetSignedWidgetSize()) * 0.5f * Coords.CanvasPose.scale;
            float baseScore = (1.0f - (transform.position - vControllerPos).magnitude / fRadius);

            // don't try to scale if invalid; scaling by zero will make it look valid
            if (baseScore < 0)
            {
                return(baseScore);
            }
            return(baseScore * Mathf.Pow(1 - m_Size / m_MaxSize_CS, 2));
        }
Exemplo n.º 24
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (controller != InputManager.ControllerName.Brush)
     {
         return;
     }
     // Swipe to change pages isn't supported by logitech pen.
     if (App.VrSdk.VrControls.Brush.ControllerGeometry.Style == ControllerStyle.LogitechPen)
     {
         return;
     }
     InputManager.Brush.Geometry.ShowBrushPage(!m_EatPadInput);
 }
Exemplo n.º 25
0
        public override float GetActivationScore(
            Vector3 vControllerPos, InputManager.ControllerName name)
        {
            Vector3 localPos = transform.InverseTransformPoint(vControllerPos);

            // Early out if we're too high.
            if (Mathf.Abs(localPos.y) > m_Capsule.height * 0.5f)
            {
                return(-1.0f);
            }

            float heightRatio = Mathf.Abs(localPos.y) / (m_Capsule.height * 0.5f);
            float halfY       = (m_Capsule.height - 2.0f * m_Capsule.radius) * 0.5f;
            float distToPole  = 0.0f;

            // Check against body.
            if (Mathf.Abs(localPos.y) < halfY)
            {
                Vector3 localNoY = localPos;
                localNoY.y = 0.0f;

                // If we're beyond the radius to the center, we're done here.
                distToPole = localNoY.magnitude;
                if (distToPole > m_Capsule.radius)
                {
                    return(-1.0f);
                }
            }
            else
            {
                // Check against end cap.
                Vector3 capCenter = new Vector3(0.0f, halfY * Mathf.Sign(localPos.y), 0.0f);
                distToPole = (localPos - capCenter).magnitude;

                // If we're beyond the radius to the cap center, we're done here.
                if (distToPole > m_Capsule.radius)
                {
                    return(-1.0f);
                }
            }

            // Score is distance to pole + distance above center.
            float baseScore = (1.0f - ((distToPole / m_Capsule.radius) * 0.5f) - (heightRatio * 0.5f));

            // don't try to scale if invalid; scaling by zero will make it look valid
            if (baseScore < 0)
            {
                return(baseScore);
            }
            return(baseScore * Mathf.Pow(1 - m_Size / m_MaxSize_CS, 2));
        }
Exemplo n.º 26
0
 public void CreateInfoCardAtController(
     InputManager.ControllerName eName, string sText,
     float fPopScalar = 1.0f, bool alsoConsole = true)
 {
     if (InputManager.m_Instance.AllowVrControllers)
     {
         Vector3 vPos = InputManager.m_Instance.GetControllerPosition(eName);
         CreateInfoCard(vPos, sText, fPopScalar, alsoConsole);
     }
     else if (alsoConsole)
     {
         ControllerConsoleScript.m_Instance.AddNewLine(sText);
     }
 }
Exemplo n.º 27
0
 override public void AssignControllerMaterials(InputManager.ControllerName controller)
 {
     if (CurrentMode == Mode.Recording)
     {
         if (controller == InputManager.ControllerName.Brush)
         {
             InputManager.Brush.Geometry.ToggleCancelOnly(enabled: true, enableFillTimer: false);
         }
         else if (controller == InputManager.ControllerName.Wand)
         {
             InputManager.Wand.Geometry.ResetAll();
         }
     }
 }
Exemplo n.º 28
0
        private static void DeferError(InputManager.ControllerName controller,
                                       string msg, System.Object obj)
        {
            if (m_DeferredErrors == null)
            {
                m_DeferredErrors = new List <DeferredErrorMessage>();
            }

            DeferredErrorMessage err = new DeferredErrorMessage();

            err.m_Controller = controller;
            err.m_Detail     = obj;
            err.m_Msg        = msg;
            m_DeferredErrors.Add(err);
        }
Exemplo n.º 29
0
 protected override void OnDisplay()
 {
     InputManager.ControllerName controller = SketchControlsScript.m_Instance.OneHandGrabController;
     if (controller != InputManager.ControllerName.None)
     {
         m_HintObject = InputManager.GetControllerGeometry(controller).UnpinHint;
         m_HintObject.Activate(true);
     }
     else
     {
         // If the user is no longer grabbing a pinned widget, there is no reason for this promo to
         // hog the active slot.
         m_Request = RequestingState.ToHide;
     }
 }
Exemplo n.º 30
0
 public override float GetSizeRatio(
     InputManager.ControllerName controller, VrInput input)
 {
     if (SketchControlsScript.m_Instance.IsUserInteractingWithSelectionWidget())
     {
         return(InputManager.Controllers[(int)controller].GetCommandHoldProgress());
     }
     if (controller == InputManager.ControllerName.Brush &&
         SketchControlsScript.m_Instance.IsUserIntersectingWithSelectionWidget())
     {
         return(InputManager.Brush.GetLastHeldInput() == null ? 0 :
                InputManager.Brush.GetCommandHoldProgress());
     }
     return(base.GetSizeRatio(controller, input));
 }