void OnNetworkTimeSet(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); long time = msg.ReadInt64(); NetworkTime = time; }
void OnColorDuration(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); long duration = msg.ReadInt64(); colorFrameDurationNS = duration * 100; }
void OnTimeOffset(HoloToolkit.Sharing.NetworkInMessage msg) { #if !UNITY_EDITOR float eventTime = Time.time; msg.ReadInt64(); int timeOffset = msg.ReadInt32(); if (timeOffset > 0) { timeOffset *= -1; } colorFrameReceivedTimeS = eventTime; prevTimeOffsetNS = timeOffset; Vector3 pos; Quaternion rot; if (GetHeadTransform(WorldManager.GetNativeISpatialCoordinateSystemPtr(), (int)timeOffset, out rot.x, out rot.y, out rot.z, out rot.w, out pos.x, out pos.y, out pos.z)) { // Transform the head position and rotation from world space into local space Vector3 HeadPos = this.transform.InverseTransformPoint(pos); Quaternion HeadRot = Quaternion.Inverse(this.transform.rotation) * rot; SpectatorView.SV_CustomMessages.Instance.SendHeadTransform(HeadPos, HeadRot); } #endif }
/// <summary> /// When a remote system has a transform for us, we'll get it here. /// </summary> /// <param name="msg"></param> void OnSceneTransform(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); transform.localPosition = SpectatorView.SV_CustomMessages.Instance.ReadVector3(msg); transform.localRotation = SpectatorView.SV_CustomMessages.Instance.ReadQuaternion(msg); transform.localScale = SpectatorView.SV_CustomMessages.Instance.ReadVector3(msg); }
/// <summary> /// Process user hit. /// </summary> /// <param name="msg"></param> void ProcessRemoteProjectile(NetworkInMessage msg) { // Parse the message long userID = msg.ReadInt64(); Vector3 remoteProjectilePosition = CustomMessages.Instance.ReadVector3(msg); Vector3 remoteProjectileDirection = CustomMessages.Instance.ReadVector3(msg); Transform anchor = ImportExportAnchorManager.Instance.gameObject.transform; ShootProjectile(anchor.TransformPoint(remoteProjectilePosition), anchor.TransformDirection(remoteProjectileDirection), userID); }
private void ProcessAnchorComplete(NetworkInMessage msg) { Debug.Log("start"); long userID = msg.ReadInt64(); if (SharingStage.Instance.ClientRole == ClientRole.Secondary) { Debug.Log("Called process anchorcomplete"); ImportExportAnchorManager.Instance.anchor_ready = true; } }
void OnNetworkRoundTripTime(HoloToolkit.Sharing.NetworkInMessage msg) { long userID = msg.ReadInt64(); long time = msg.ReadInt64(); #if !UNITY_EDITOR SpectatorView.SV_CustomMessages.Instance.SendNetworkRoundTripTime(time); #else if (HolographicCameraManager.Instance != null && HolographicCameraManager.Instance.tppcUser != null && HolographicCameraManager.Instance.tppcUser.IsValid() && userID == HolographicCameraManager.Instance.tppcUser.GetID()) { NetworkTime = GetCurrentUnityTime() - time; SetNetworkLatency(NetworkTime); SpectatorView.SV_CustomMessages.Instance.SendTPPCNetworkTime(NetworkTime); } #endif }
private void ProcessAnchorRequest(NetworkInMessage msg) { long userID = msg.ReadInt64(); if (SharingStage.Instance.ClientRole == ClientRole.Primary) { if (ImportExportAnchorManager.Instance.AnchorEstablished) { CustomMessages.Instance.SendAnchorComplete(); } } }
void OnEditorUser(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); long ipSize = msg.ReadInt64(); byte[] ipData = new byte[(uint)ipSize]; msg.ReadArray(ipData, (uint)ipSize); string editorIP = System.Text.Encoding.ASCII.GetString(ipData).Trim(); long editorUserID = msg.ReadInt64(); if (HolographicCameraManager.Instance.LocalComputerIP.Trim() == String.Empty || HolographicCameraManager.Instance.LocalComputerIP.Trim() == editorIP) { User user = SharingStage.Instance.SessionUsersTracker.GetUserById((int)editorUserID); if (user != null) { HolographicCameraManager.Instance.editorUser = user; } } }
/// <summary> /// Called when a remote user sends a head transform. /// </summary> /// <param name="msg"></param> void UpdateHeadTransform(NetworkInMessage msg) { // Parse the message long userID = msg.ReadInt64(); Vector3 headPos = CustomMessages.Instance.ReadVector3(msg); Quaternion headRot = CustomMessages.Instance.ReadQuaternion(msg); RemoteHeadInfo headInfo = GetRemoteHeadInfo(userID); headInfo.HeadObject.transform.localPosition = headPos; headInfo.HeadObject.transform.localRotation = headRot; }
void OnSpatialMapping(HoloToolkit.Sharing.NetworkInMessage msg) { #if UNITY_EDITOR if (SpatialMappingManager.Instance == null) { return; } SpectatorView.RemoteSpatialMappingSource rsms = SpatialMappingManager.Instance.GetComponent <SpectatorView.RemoteSpatialMappingSource>(); if (rsms == null) { return; } msg.ReadInt64(); List <Vector3> vertices = new List <Vector3>(); List <Vector3> normals = new List <Vector3>(); List <int> triangles = new List <int>(); int vertexCount = msg.ReadInt32(); int normalCount = msg.ReadInt32(); int triangleCount = msg.ReadInt32(); for (int i = 0; i < vertexCount; i++) { Vector3 vertex = SpectatorView.SV_CustomMessages.Instance.ReadVector3(msg); vertices.Add(vertex); } for (int i = 0; i < normalCount; i++) { Vector3 normal = SpectatorView.SV_CustomMessages.Instance.ReadVector3(msg); normals.Add(normal); } for (int i = 0; i < triangleCount; i++) { int index = msg.ReadInt32(); triangles.Add(index); } SpatialMappingManager.Instance.transform.parent = transform; SpatialMappingManager.Instance.transform.localPosition = Vector3.zero; SpatialMappingManager.Instance.transform.localRotation = Quaternion.identity; rsms.AddSurface(vertices, normals, triangles); #endif }
void OnUpdateSpectatorViewIP(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); string _SpectatorViewIP = SV_CustomMessages.Instance.ReadIP(msg); if (SpectatorViewManager.Instance == null || SpectatorView.HolographicCameraManager.Instance == null) { return; } if (_SpectatorViewIP != SpectatorViewManager.Instance.SpectatorViewIP) { Debug.Log("Updating spectator view ip to: " + SpectatorViewManager.Instance.SpectatorViewIP); SpectatorViewManager.Instance.SpectatorViewIP = _SpectatorViewIP; SpectatorView.HolographicCameraManager.Instance.HolographicCameraIP = SpectatorViewManager.Instance.SpectatorViewIP; } }
void OnSpatialMappingRequest(HoloToolkit.Sharing.NetworkInMessage msg) { msg.ReadInt64(); HolographicCameraManager.Instance.requestSpatialMappingData = true; }