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); } } } } }
// 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); }
override public void AssignControllerMaterials(InputManager.ControllerName controller) { if (controller == InputManager.ControllerName.Brush) { InputManager.Brush.Geometry.ShowPinToggle(m_InPinningMode); } }
public void DisableControllerTutorial(InputManager.ControllerName eName) { ControllerTutorialScript tutorial = InputManager.m_Instance.GetControllerTutorial(eName); if (tutorial) { tutorial.DisableTutorialObject(); } }
override public void AssignControllerMaterials(InputManager.ControllerName controller) { if (controller == InputManager.ControllerName.Brush) { InputManager.Brush.Geometry.ShowBrushSizer(); } }
/// 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); } } }
override public float GetActivationScore( Vector3 controllerPos, InputManager.ControllerName name) { if (VideoRecorderUtils.ActiveVideoRecording != null || m_OverridePathT != null) { return -1.0f; } return base.GetActivationScore(controllerPos, name); }
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); }
public override void AssignControllerMaterials(InputManager.ControllerName controller) { if (!SketchControlsScript.m_Instance.IsUserTwoHandGrabbingWidget() && SketchControlsScript.m_Instance.OneHandGrabController == controller) { InputManager.Controllers[(int)controller].Geometry.ShowDuplicateOption(); } }
virtual public float GetSizeRatio( InputManager.ControllerName controller, VrInput input) { if (controller == InputManager.ControllerName.Brush) { return(GetSize01()); } return(0.0f); }
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); }
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); } } }
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); } }
public bool PrimaryScrollDirectionIsX(InputManager.ControllerName name) { var behavior = GetBehavior(name); if (behavior.ControllerGeometry.Style == ControllerStyle.LogitechPen) { return(false); } return(true); }
public Vector2 TriggerActivationRange(InputManager.ControllerName name) { var behavior = GetBehavior(name); if (behavior.ControllerGeometry.Style == ControllerStyle.LogitechPen) { return(m_LogitechPenActivationRange); } return(m_TriggerActivationRange); }
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); } }
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(); } } }
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)); }
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); }
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); }
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)); }
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); }
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)); }
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); }
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)); }
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); } }
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(); } } }
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); }
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; } }
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)); }