void all_UpdateReferenceFrame(string zone, string referenceFrame, string targetWidth, string targetDist) { Zone = (DistanceZones)System.Enum.Parse(typeof(DistanceZones), zone); RefFrame = (ReferenceFrame)System.Enum.Parse(typeof(ReferenceFrame), referenceFrame); TargetWidth = (TargetWidths)System.Enum.Parse(typeof(TargetWidths), targetWidth); TargetDistance = (TargetDistances)System.Enum.Parse(typeof(TargetDistances), targetDist); if (TargetSet == null) { return; } Vector2 tParams = GetTargetParams(); targetWidthValue = tParams.x; targetDistanceValue = tParams.y; UpdateLayout(targetWidthValue, targetDistanceValue); GameObject zoneGO = GetInteractionZoneGO(); TargetSet.transform.SetParent(zoneGO.transform, true); TargetSet.transform.localPosition = Vector3.zero; //Raise target frame if body/world since they are initially set to be low. if (RefFrame != ReferenceFrame.View) { TargetSet.transform.Translate(new Vector3(0, .35f, 0), Space.Self); } TargetSet.transform.localScale = Vector3.one; TargetSet.transform.LookAt(Participant.transform.position); MessageBroker.BroadcastAll("OnReferenceFrameUpdated", RefFrame); }
void CheckSelections(MoverioTouchpadEventArgs mieArgs) { Collider[] targets = GetAffectedTargets(); SelectionControllerEventArgs args = new SelectionControllerEventArgs(mieArgs); args.Device = ControllerType.HandGesture; args.IsConflict = targets.Length > 1; args.PointerPx = RightCamera.WorldToScreenPoint(gameObject.transform.position); args.PointerPos = gameObject.transform.position; args.PointerQuat = gameObject.transform.rotation; foreach (Collider target in targets) { target.SendMessage("Selected", args, SendMessageOptions.DontRequireReceiver); } if (targets.Length == 0 || args.IsConflict) { SelectionEventArgs seArgs = new SelectionEventArgs(args); seArgs.Type = SelectionEventArgs.SelectionEventType.Selected; MessageBroker.BroadcastAll("OnSelected", seArgs); } }
void mipTap(Vector2 position) { if ((System.DateTime.Now - timeLastReset).TotalMilliseconds < FingerUpTimeOut) { return; } MoverioTouchpadEventArgs args = new MoverioTouchpadEventArgs(MoverioTouchpadEventType.Tap); args.Position = position; args.Origin = position; args.Last = position; MessageBroker.BroadcastAll("OnTap", args); System.DateTime tapTime = System.DateTime.Now; if ((tapTime - lastTapTime).TotalMilliseconds < TapTimeOut) { args = new MoverioTouchpadEventArgs(MoverioTouchpadEventType.DoubleTap); args.Position = position; args.Origin = position; args.Last = position; MessageBroker.BroadcastAll("OnDoubleTap", args); } lastTapTime = tapTime; }
private void StartServer() { Network.InitializeServer(2, 8080, true); isConnected = true; //calls the WindowsViconConnector.OnNetworkStarted method MessageBroker.BroadcastAll("OnNetworkStarted", true); }
private void StartClient() { Network.Connect(IPofDesktopServer, 8080); isConnected = true; //calls the WindowsViconConnector.OnNetworkStarted method MessageBroker.BroadcastAll("OnNetworkStarted", false); }
void mipTouchMoved(Vector2 position, Vector2 origin, Vector2 last) { MoverioTouchpadEventArgs args = new MoverioTouchpadEventArgs(MoverioTouchpadEventType.TouchMoved); args.Position = position; args.Origin = origin; args.Last = last; MessageBroker.BroadcastAll("OnTouchMoved", args); }
public void SetBaselineRotation() { baselineRotation = GetFilteredRotation(Quaternion.identity); invBaselineRotation = Quaternion.Inverse(baselineRotation); actualRotation = invBaselineRotation * baselineRotation; headBaselineRotation = GetFilteredHeadRotation(Quaternion.identity); headInvBaselineRotation = Quaternion.Inverse(headBaselineRotation); headActualRotation = headInvBaselineRotation * headBaselineRotation; MessageBroker.BroadcastAll("OnRotationBaselineSet"); }
void mipTouchStarted(Vector2 position) { if (!touchStarted) { touchStarted = true; if ((System.DateTime.Now - timeLastReset).TotalMilliseconds < FingerUpTimeOut) { return; } MoverioTouchpadEventArgs args = new MoverioTouchpadEventArgs(MoverioTouchpadEventType.TouchStarted); args.Position = position; args.Origin = position; args.Last = position; MessageBroker.BroadcastAll("OnTouchStarted", args); } }
private void ProcessRotationalTriggers() { Quaternion historicRot = GetHistoricValue(TwistThresholdMillis); Quaternion diff = Quaternion.Inverse(historicRot) * Rotation; Vector3 diffNegPos = RotationProvider.RotAsPosNeg(diff); //Checks for twist trigger to the right if (diffNegPos.z > TwistTriggerThreshold[2]) { MessageBroker.BroadcastAll("OnTwist", new TwistEvent() { Type = TwistTriggerTypes.ScrewRight, initialRot = historicRot, Milliseconds = TwistThresholdMillis }); } else if (diffNegPos.z < -TwistTriggerThreshold[2]) { MessageBroker.BroadcastAll("OnTwist", new TwistEvent() { Type = TwistTriggerTypes.ScrewLeft, initialRot = historicRot, Milliseconds = TwistThresholdMillis }); } if (diffNegPos.x < -TwistTriggerThreshold[0]) { MessageBroker.BroadcastAll("OnTwist", new TwistEvent() { Type = TwistTriggerTypes.Up, initialRot = historicRot, Milliseconds = TwistThresholdMillis }); } else if (diffNegPos.x > TwistTriggerThreshold[0]) { MessageBroker.BroadcastAll("OnTwist", new TwistEvent() { Type = TwistTriggerTypes.Down, initialRot = historicRot, Milliseconds = TwistThresholdMillis }); } // ----- IMPORTANT ------------- //Remove the next elements in the Queue otherwise it will continue triggering the same event }
void mipTouchEnded(Vector2 position, Vector2 origin, System.TimeSpan lenght) { if (touchStarted) { touchStarted = false; if ((System.DateTime.Now - timeLastReset).TotalMilliseconds < FingerUpTimeOut) { return; } MoverioTouchpadEventArgs args = new MoverioTouchpadEventArgs(MoverioTouchpadEventType.TouchEnded); args.Position = position; args.Origin = origin; args.Duration = lenght; MessageBroker.BroadcastAll("OnTouchEnded", args); if (isAndroid && resetMousePointerOnTouchEnded) { if (!isJNIInitialized) { CommToAndroid.CallAndroidMethod("setDisplaySize", Screen.width, Screen.height); CommToAndroid.CallAndroidMethod("openMouseCursor", "UnityMoverioBT200"); isJNIInitialized = true; } else { CommToAndroid.CallAndroidMethod("mouseMove", -1, -1); CommToAndroid.CallAndroidMethod("mouseMove", 180, 100); } touchOrigin = Input.mousePosition; touchLastPosition = Input.mousePosition; timeLastReset = System.DateTime.Now; } } }
void CheckSelections(MoverioTouchpadEventArgs mieArgs) { Collider target = GetFirstAffectedTarget(); SelectionControllerEventArgs args = new SelectionControllerEventArgs(mieArgs); args.Device = ControllerType.GyroMouse; args.IsConflict = false; args.PointerPx = GetScreenPoint(); args.PointerPos = EPSONcamera.transform.position; args.PointerQuat = EPSONcamera.transform.rotation; if (target != null) { target.SendMessage("Selected", args, SendMessageOptions.DontRequireReceiver); } else { SelectionEventArgs seArgs = new SelectionEventArgs(args); seArgs.Type = SelectionEventArgs.SelectionEventType.Selected; MessageBroker.BroadcastAll("OnSelected", seArgs); } }